
来源引用网络知识与某站曹老师视频相互结合学习记录仅供参考Python简介百度百科Python 是一门优雅而健壮的编程语言由荷兰国家数学与计算机科学研究中心的吉多·范罗苏姆于1990年代初设计作为ABC语言的替代品它继承了传统编译语言的强大性和通用性同时也借鉴了脚本语言和解释语言的易用性是一种解释型脚本语言。Guido van Rossum在1995年于国家创新研究公司CNRI继续他在Python上的工作2001年Python软件基金会PSF成立。Python被设计成是 “符合大脑思维习惯” 的采用极简主义的设计理念加以统一规范的交互模式。这使得Python易于学习、理解和记忆。Python 开发者的哲学是 “用一种方法最好是只有一种方法来做一件事”。它提供高效的数据结构、动态类型及面向对象编程特性适用于脚本编写与快速开发。对于科研而言Python的应用非常广泛。众多开源的科学计算软件包都提供了Python的调用接口例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了例如十分经典的科学计算扩展库NumPy、SciPy和matplotlib它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表甚至开发科学计算应用程序。Python 2于2000年发布Python 3于2008年发布且不完全兼容前代。 该语言已成为受欢迎的程序设计语言之一其使用率自2004年起呈线性增长广泛应用于Web开发、科学计算、金融分析、自动化等领域。Python 基础知识推荐书籍Python 核心编程推荐工具PyCharm环境搭建--Python-PyCharm、Visual Studio Code 等等烦请自行选择一、变量和简单类型变量无论使用什么语言编程总要处理数据处理数据就需要使用变量来保存数据变量就像一个个小容器用于“盛装”程序中的数据。在 Python 中有以下六种数据类型数字、字符串、列表、字典、元组、集合数字类型又分四种小类整数、浮点数、复数、布尔类型。类型描述说明数字Number整数int整数int例如50、-50浮点数float浮点数float例如13.14、-13.14复数complex复数complex例如53j以 j 结尾表示复数布尔bool布尔bool即真 True 数字记作 1 和假 False 0字符串String描述文本的一种数据类型字符串由任意数量的字符组成列表List有序的可变序列python 中使用最频繁的数据类型可有序记录一堆数据元组Tuple有序的不可变序列可有序记录一堆不可变的 Python 数据集合集合Set无序不重复集合可无序记录一堆不重复的 Python 数据集合字典Dictionary无序 Key-Value 集合可无序记录一堆 Key-Value 的 Python 数据集合变量的定义方式变量名称 变量的值“”等号是赋值符号意思是把右侧的值赋值给左侧变量变量的数据是可以变化的重新给变量赋值即可PyCharm 工具快捷键 CtrlAltL 重新设置代码格式注释注释对程序代码进行解释说明的文字可以用来解释程序某些部分的作用和功能提高程序的可读性。注释分为单行注释和多行注释单行注释python 使用 # 井号表示单行注释的开始跟在“#”号后面直到这行结束为止的代码都将被解释器忽略。多行注释多行注释是指一次性将程序中的多行代码注释掉在 python 程序中使用三个单引号或三个双引号将注释的内容括起来。数据类型python 是弱类型语言变量的类型是可以改变的变量定义成功后可以使用 type(() 方法来查看变量的类型Python数据类型转换有时候我们需要对数据内置的类型进行转换数据类型的转换你只需要将数据类型作为函数名即可以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象表示转换的值。函数描述int(x [,base])将x转换为一个整数float(x)将x转换到一个浮点数complex(real [,imag])创建一个复数str(x)将对象 x 转换为字符串repr(x)将对象 x 转换为表达式字符串eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象tuple(s)将序列 s 转换为一个元组list(s)将序列 s 转换为一个列表set(s)转换为可变集合dict(d)创建一个字典。d 必须是一个 (key, value)元组序列。frozenset(s)转换为不可变集合chr(x)将一个整数转换为一个字符ord(x)将一个字符转换为它的整数值hex(x)将一个整数转换为一个十六进制字符串oct(x)将一个整数转换为一个八进制字符串变量的命名规则Python 需要使用标识符给变量命名其实标识符就是用于给程序中变量、类、方法命名的符号简单来说标识符就是合法的名字。python 语言的标识符必须以字母、下划线 _ 开头后面可以跟任意数量的字母、数字、下划线这里的字母并不局限于 26 个英文字母可以包含中文字符可以是中文不报错不过不推荐。在使用标识符时需要注意以下规则1、标识符可以由字母、数字、下划线组成但是不能由数字开头2、标识符不能是 python 关键字3、标识符不能包含空格python 常用关键字系统有一些常用关键字不可以用来当作标识符。andlambdaexceptwhiledelreturnimportorclasstryifassertyieldasindeffinallyelseTruecontinuefromisglobalraiseelifFalsepassnotnonlocalwithforNonebreak运算符运算符是一种特殊的符号用来表示数据的运算、赋值和比较等等赋值运算符赋值运算符用于为变量或常量指定值python 中使用“”一个等号作为赋值运算符通常使用赋值运算符将表达式的值赋给另一个变量。算数运算符python 支持所有的基本算数运算符这些算数运算符用于执行基本的数学运算例如加、减、乘、除和求余、取模等等。运算符描述示例a10b21加两个对象相加a b 输出结果 31-减得到负数或是一个数减去另一数a - b 输出结果 -11*乘两个数相乘或是返回一个被重复若干次的字符串a * b 输出结果 210/除x 除以 yb / a 输出结果 2.1%取模返回除法的余数b % a 输出结果 1**幂返回 x 的 y 次方幂a ** b 输出结果为 10 的 21 次方//取整除返回商的整数部分9 // 2 输出结果 49.0 // 2.0 输出结果 4.0a 10 b 21 print(ab, a b) print(a-b, a - b) print(a*b, a * b) print(b/a, b / a) print(b%a, b % a) print(a**b, a ** b) print(b//a, b // a) print(9//2, 9 // 2) print(9.0//2.0, 9.0 // 2.0) 运行结果 ab 31 a-b -11 a*b 210 b/a 2.1 b%a 1 a**b 1000000000000000000000 b//a 2 9//2 4 9.0//2.0 4.0扩展后的赋值运算符运算符描述示例a10b21c21简单的赋值运算符c a b 将 ab 的运算结果赋值给 c加法赋值运算符c a 等同于 c c a-减法赋值运算符c - a 等同于 c c - a*乘法赋值运算符c * a 等同于 c c * a/除法赋值运算符c / a 等同于 c c / a%取模赋值运算符c % a 等同于 c c % a**幂赋值运算符c ** a 等同于 c c ** a//取整除赋值运算符c // a 等同于 c c // a其他Python算术运算符运算符描述实例假设变量 a10b21加 -- 两个对象相加a b 输出结果 31-减 -- 得到负数或是一个数减去另一个数a - b 输出结果 -11*乘 -- 两个数相乘或是返回一个被重复若干次的字符串a * b 输出结果 210/除 -- x 除以 yb / a 输出结果 2.1%取模 -- 返回除法的余数b % a 输出结果 1**幂 -- 返回x的y次幂a**b 为10的21次方//取整除 -- 往小的方向取整数 9//2 4 -9//2 -5Python 比较关系运算符运算符描述实例假设变量 a10b20等于 -- 比较对象是否相等(a b) 返回 False。!不等于 -- 比较两个对象是否不相等(a ! b) 返回 True。大于 -- 返回x是否大于y(a b) 返回 False。小于 -- 返回x是否小于y。所有比较运算符返回1表示真返回0表示假。这分别与特殊的变量True和False等价。注意这些变量名的大写。(a b) 返回 True。大于等于 -- 返回x是否大于等于y。(a b) 返回 False。小于等于 -- 返回x是否小于等于y。(a b) 返回 True。等于 -- 比较对象是否相等(a b) 返回 False。Python赋值运算符运算符描述实例假设变量 a10b20简单的赋值运算符c a b 将 a b 的运算结果赋值为 c加法赋值运算符c a 等效于 c c a-减法赋值运算符c - a 等效于 c c - a*乘法赋值运算符c * a 等效于 c c * a/除法赋值运算符c / a 等效于 c c / a%取模赋值运算符c % a 等效于 c c % a**幂赋值运算符c ** a 等效于 c c ** a//取整除赋值运算符c // a 等效于 c c // a:海象运算符这个运算符的主要目的是在表达式中同时进行赋值和返回赋值的值。Python3.8 版本新增运算符。在这个示例中赋值表达式可以避免调用 len() 两次:if (n : len(a)) 10: print(fList is too long ({n} elements, expected 10))Python位运算符按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下a 0011 1100 b 0000 1101 ----------------- ab 0000 1100 a|b 0011 1101 a^b 0011 0001 ~a 1100 0011运算符描述实例假设变量 a6000111100b1300001101按位与运算符参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a b) 输出结果 12 二进制解释 0000 1100|按位或运算符只要对应的二个二进位有一个为1时结果位就为1。(a | b) 输出结果 61 二进制解释 0011 1101^按位异或运算符当两对应的二进位相异时结果为1(a ^ b) 输出结果 49 二进制解释 0011 0001~按位取反运算符对数据的每个二进制位取反,即把1变为0,把0变为1。~x类似于-x-1(~a ) 输出结果 -61 二进制解释 1100 0011 在一个有符号二进制数的补码形式。左移动运算符运算数的各二进位全部左移若干位由右边的数指定移动的位数高位丢弃低位补0。a 2 输出结果 240 二进制解释 1111 0000右移动运算符把左边的运算数的各二进位全部右移若干位右边的数指定移动的位数a 2 输出结果 15 二进制解释 0000 1111Python逻辑运算符Python语言支持逻辑运算符运算符逻辑表达式描述实例a10b20andx and y布尔与 - 如果 x 为 Falsex and y 返回 x 的值否则返回 y 的计算值。(a and b) 返回 20。orx or y布尔或 - 如果 x 是 True它返回 x 的值否则它返回 y 的计算值。(a or b) 返回 10。notnot x布尔非 - 如果 x 为 True返回 False 。如果 x 为 False它返回 True。not(a and b) 返回 FalsePython成员运算符除了以上的一些运算符之外Python还支持成员运算符测试实例中包含了一系列的成员包括字符串列表或元组。运算符描述实例in如果在指定的序列中找到值返回 True否则返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。not in如果在指定的序列中没有找到值返回 True否则返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。Python身份运算符身份运算符用于比较两个对象的存储单元运算符描述实例isis 是判断两个标识符是不是引用自一个对象x is y, 类似id(x) id(y), 如果引用的是同一个对象则返回 True否则返回 Falseis notis not 是判断两个标识符是不是引用自不同对象x is not y 类似id(x) ! id(y)。如果引用的不是同一个对象则返回结果 True否则返回 False。注id() 函数用于获取对象内存地址。Python运算符优先级以下表格列出了从最高到最低优先级的所有运算符 相同单元格内的运算符具有相同优先级。 运算符均指二元运算除非特别指出。 相同单元格内的运算符从左至右分组除了幂运算是从右至左分组运算符描述(expressions...),[expressions...],{key: value...},{expressions...}圆括号的表达式x[index],x[index:index],x(arguments...),x.attribute读取切片调用属性引用await xawait 表达式**乘方(指数)x,-x,~x正负按位非 NOT*,,/,//,%乘矩阵乘除整除取余,-加和减,移位按位与 AND^按位异或 XOR|按位或 ORin,not in, is,is not, , , , , !, 比较运算包括成员检测和标识号检测not x逻辑非 NOTand逻辑与 ANDor逻辑或 ORif--else条件表达式lambdalambda 表达式:赋值表达式字符串字符串的意思就是“一串字符”python 中要求字符串必须使用引号单引号、双引号、三引号括起来需要两边的引号能配对str1 python str2 pycharm print(str1) print(str2) 运行结果 python pycharm字符串定义和转义字符例如定义的字符串里面含有单引号或者双引号对于这种情况有两种解决方案1、使用不同的引号将字符串括起来2、通过使用 \ 对引号进行转义str1 python 520 str2 pycharm 521 str3 pycharm \1314\ print(str1) print(str2) print(str3) 运行结果 python 520 pycharm 521 pycharm 1314长字符串的定义长字符串的写法是使用三个引号单引号或者双引号在长字符串中可以放置任意内容包括放置单引号、双引号等等若所定义的长字符串没有赋值给任何变量那么这个长字符串就相当于是一个多行注释被注释掉了会被 python 解释器忽略。str1 《静夜思》 李白 床前明月光 疑是地上霜。 举头望明月 低头思故乡。 print(str1)字符串拼接在 python 中使用“”加号作为字符串的拼接运算符str1 python str2 pycharm print(str1: str1 ,str2: str2) 运行结果 str1:python,str2:pycharm有时需要将字符串与数值进行拼接而 python 中不允许直接拼接数值和字符串程序必须先将数值转化成字符串为了将数值转换成字符串可以使用 str() 或 repr() 函数str1 python str2 pycharm int_str3 123 print(str1: str1 ,str2: str2 ,int_str3: str(int_str3)) print(str1: str1 ,str2: str2 ,int_str3: repr(int_str3)) 运行结果 str1:python,str2:pycharm,int_str3:123 str1:python,str2:pycharm,int_str3:123使用 input 获取用户输入input() 函数用于向用户生成一条提示然后获取用户输入的内容由于 input() 函数总会将用户输入的内容放入字符串中因此用户可以输入任何内容input() 函数总是返回一个字符串一般可以通过 int()、float() 等方法来转换类型。name input(请输入您的姓名) print(name, type(name)) age input(请输入您的年龄) # 使用int()函数把字符串类型转换成整型 age int(age) print(age, type(age)) height input(请输入您的身高cm) # 转换成浮点型 height float(height) print(height, type(height)) 运行结果 请输入您的姓名小明 小明 class str 请输入您的年龄15 15 class int 请输入您的身高cm177 177.0 class float字符串格式化前面介绍了字符串拼接若是简单的 2、3 个字符串拼接那还算好如果大于 3 个变量的拼接就会比较麻烦还有就是字符串无法和其他类型直接拼接需要先进行类型转换python 中提供了“%”对各种类型的数据进行格式化输出。name 小明 print(姓名是%s % name) 运行结果 姓名是小明print(姓名是%s % name)这里 “%s”是占位符第二个“%”是分隔符后面的 name 就是变量了name 小明 age 15 print(姓名是%s,已经%s岁了 % (name, age)) 运行结果 姓名是小明,已经15岁了再添加一个 int 类型的 age 变量输出时使用两个“%s”中间依然用“%”间隔后面括号里面两个参数需要注意参数的顺序不能乱除了“%s”以外还有很多占位符例如常用的 %s%d%f分别把参数或者表达式转换成字符串整型浮点型。转换说明符描述d,i转换为带符号的十进制形式的整数o转换为带符号的八进制形式的整数x转换为带符号的十六进制形式的整数X转换为带符号的十六进制形式的整数e转换为科协计数法表示的浮点数e 小写E转换为科协计数法表示的浮点数E 大写f,F转换为十进制形式的浮点数g智能选择使用 f 或 e 格式G智能选择使用 F 或 E 格式C转换为单字符只接受整数或单字符字符串r使用 repr() 将变量或表达式转换为字符串s使用 str() 将变量或表达式转换为字符串name 小明 age 15 height 177.7 print(姓名是%s,已经%s岁了,身高%f % (name, age, height)) 运行结果 姓名是小明,已经15岁了,身高177.700000可以看到打印结果中身高字段后面多了 5 个 0此处涉及到一个格式化精度控制可以使用辅助符号“m,n”来控制数据的宽度和精度m控制宽度包括小数点需要注意若设置的宽度小于数字本身则不会生效n控制小数点精度若数字的宽度大于小数位数则需要进行四舍五入name 小明 age 15 height 171.55 print(姓名是%s,已经%s岁了,身高%.1f % (name, age, height)) 运行结果 姓名是小明,已经15岁了,身高171.6快速 format 格式化用法一种更加简单快捷优雅的格式化方式语法是f内容{变量}内容在字符串前面添加“f”字符串里面的对应变量使用“{}”大括号括起来name 小明 age 15 height 171.55 print(f姓名是{name},已经{age}岁了,身高{height:.1f}) 运行结果 姓名是小明,已经15岁了,身高171.6未完待续......