【Python】基本语法
Python一、基本语法1、数据存储与运算2、流程控制3、数据容器3.1、数据容器3.2、列表3.3、字符串3.4、元组3.5、集合3.6、字典3.7、总结4、函数5、类型注解6、模块7、面向对象8、异常二、一、基本语法1、数据存储与运算字面量的定义字面量是代码中直接写出的固定值,如 5、3.14、“hello”、[1,2,3]字面量的类型类型书写格式示例整型42,-7,0b1010(二进制),0o12(八进制),0xA(十六进制)浮点型3.14,-0.5,2.5e3(科学计数法)字符串"hello",'world',"""多行""",'''字符串'''布尔型True,False空值None(空值类型只有 None 这一个值,表示空或无值)列表[1, 2, 3],["a", "b"]元组(1, 2),3, 4(无括号也合法)字典{"name": "Alice", "age": 25}集合{1, 2, 3}TIP1、布尔类型参与运算时,True 会转化为 1,False 会转化为 02、空值这种类型仅包含一个值 —— None判断变量类型的方法:type(变量)或isinstance(变量,类型)类型转换目标类型函数示例说明整型int(x)int("123")→123int(3.14)→3截断小数,可指定进制:int("A",16)→10浮点型float(x)float("3.14")→3.14float(5)→5.0字符串str(x)str(123)→"123"str(3.14)→"3.14"布尔型bool(x)bool(1)→Truebool(0)→Falsebool("")→False假值:None、0、0.0、""、[]、{}、set()列表list(iter)list("abc")→['a','b','c']list((1,2))→[1,2]元组tuple(iter)tuple([1,2])→(1,2)集合set(iter)set([1,2,2])→{1,2}自动去重字典dict(iter)dict([("a",1),("b",2)])→{"a":1,"b":2}需传入键值对序列进制转换:转二进制bin()、转八进制oct()、转十进制ord()、转十六进制hex()字符串的定义方法1、'xxx'、“xxx”:无本质区别,但可互相嵌套避免转义格式符号描述%s字符串占位符%d整数占位符%5d表示整数的宽度是5,不足5位时用空格补%f浮点数占位符%.2f表示精确到小数点后两位%cASCII码占位符%u无符号数占位符%o无符号八进制占位符%x 或 %X无符号十六进制占位符%e 或 %E浮点数(科学计数法形式)占位符2、"""xxx""":可跨多行,保留换行和缩进(也可以采用+\来连接多行)3、"""str.format()# 基本使用print('{}网址: "{}!"'.format('xxx','www.xxx.com'))# xxx网址: "www.xxx.com!"# 位置型print('{1} 和 {0}'.format('Google','Runoob'))# Runoob 和 Google# 关键词型print('{name}网址: {site}'.format(name='xxx',site='www.xxx.com'))# xxx网址: "www.xxx.com!"# 保留三位小数print('常量 PI 的值近似为 {0:.3f}。'.format(math.pi))# 常量 PI 的值近似为 3.142。# 左填充和右填充print('{0:10} == {1:10}'.format('Google',1))# Google == 1# 传入一个容器table={'Google':1,'Runoob':2,'Taobao':3}print('Runoob: {0[Runoob]}; Google: {0[Google]}; Taobao: {0[Taobao]}'.format(table)# Runoob: 2; Google: 1; Taobao: 3# **类似于一种解构table={'Google':1,'Runoob':2,'Taobao':3}print('Runoob: {Runoob}; Google: {Google}; Taobao: {Taobao}'.format(**table))# Runoob: 2; Google: 1; Taobao: 3字符串拼接时,若要拼接其他类型的数据,需要用str()进行转换字符串格式化方法1、”%s %d“ % (值1,值2):例如 “name: %s, age: %d” % (“Tom”, 18)2、f"内容:{值}":例如 f"age: {age}"不让 \ 发生转义:r"xxx"输出多份字符串:print( 字符串 * 数字 )获取用户的输入:a = input("xxx")特殊字符特殊字符描述\b退格\000空\n换行\t横向制表符\v纵向制表符\yyy\三位数字,表示八进制\xyy\x两位数字,表示十六进制算术运算符1、//:整除运算(向下取整)2、**:幂运算(返回左操作数的有右操作数次幂)逻辑运算符1、~:按位取反2、、:逻辑移位成员运算符:in和not in身份运算符:is和is not—— 是否引用相(不)同对象,类似于 id(xxx) == id(yyy)海象运算符:=:允许在表达式中同时赋值并使用变量# 传统写法n=len(lst)ifn5:print(n)# 海象写法if(n:=len(lst))5:print(n)优先级优先级(由上往下递减)描述类型(expr...),[expr...],{key: value...},{expr...}绑定或加括号、列表/字典/集合显示表达式x[index],x[index1:index2],x.attr,x()索引、切片、属性引用、函数调用自操作await xawait 表达式**乘方运算+x,-x,~x正、负、按位非自运算*,@,/,//,%乘、矩阵乘、除、整除、取余运算+,-加法、减法运算,移位比特运算按位与比特操作^按位异或比特操作|按位或比特操作in,not in,is,is not,,=,,=,!=,==比较运算比较not逻辑非逻辑运算and逻辑与逻辑运算or逻辑或逻辑运算:=海象运算符(赋值表达式)赋值lambdalambda 表达式在交互模式中,最后被输出的表达式结果会被赋值给变量_price=100.50price * tax12.5625price + _113.0625数学方法常用操作描述abs(x)返回数字的绝对值fabs(x)以浮点数的形式返回数字的绝对值ceil(x)向上取整floor(x)向下取整cmp(x,y)如果 xy 则返回 -1,x==y 则返回 0,xy 则返回 1exp(x)返回 e 的 x 次方,例如 exp(1) 返回 2.71828…log(x,e)以 e 为基数求对数log10(x)以 10 为基数求对数max(x1,x2…)返回最大值min(x1,x2…)返回最小值modf(x)返回 x 的整数部分和小数部分,整数部分以浮点型进行表示pow(x,y)计算 x**y 的值round(x[,n])返回浮点数 x 四舍五入的值,n表示保留的位数sqrt(x)返回数字 x 的平方根随机数函数描述choice(seq)从序列的元素中随机挑一个元素randrange([start,] stop [,strp])在指定返回内,start 默认是1,按 step 递增的集合中获取一个随机数random()随机生成 [ 0,1 ) 范围内的数shuffle(list)将序列的所有元素随机进行排序uniform(x,y)随机生成下一个实数,它在 [ x,y ] 范围内三角函数描述sin(x)、cos(x)、tan(x)正弦、余弦、正切asin(x)、acos(x)、atan(x)反正弦、反余弦、反正切degrees(x)将弧度转换为角度,如 degrees(math.pi/2) 返回 90°radians(x)将角度转换为弧度数字常量:pi:Π、e:自然常数