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} |
TIP
1、布尔类型参与运算时,True 会转化为 1,False 会转化为 0
2、空值这种类型仅包含一个值 —— 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表示精确到小数点后两位 |
| %c | ASCII码占位符 |
| %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)ifn>5:print(n)# 海象写法if(n:=len(lst))>5:print(n)- 优先级
| 优先级(由上往下递减) | 描述 | 类型 |
|---|---|---|
(expr...),[expr...],{key: value...},{expr...} | 绑定或加括号、列表/字典/集合显示 | 表达式 |
x[index],x[index1:index2],x.attr,x() | 索引、切片、属性引用、函数调用 | 自操作 |
await x | await 表达式 | |
** | 乘方 | 运算 |
+x,-x,~x | 正、负、按位非 | 自运算 |
*,@,/,//,% | 乘、矩阵乘、除、整除、取余 | 运算 |
+,- | 加法、减法 | 运算 |
<<,>> | 移位 | 比特运算 |
& | 按位与 | 比特操作 |
^ | 按位异或 | 比特操作 |
| | 按位或 | 比特操作 |
in,not in,is,is not,<,<=,>,>=,!=,== | 比较运算 | 比较 |
not | 逻辑非 | 逻辑运算 |
and | 逻辑与 | 逻辑运算 |
or | 逻辑或 | 逻辑运算 |
:= | 海象运算符(赋值表达式) | 赋值 |
lambda | lambda 表达式 |
- 在交互模式中,最后被输出的表达式结果会被赋值给变量_
>>>price=100.50>>>price * tax12.5625>>>price + _113.0625- 数学方法
| 常用操作 | 描述 |
|---|---|
| abs(x) | 返回数字的绝对值 |
| fabs(x) | 以浮点数的形式返回数字的绝对值 |
| ceil(x) | 向上取整 |
| floor(x) | 向下取整 |
| cmp(x,y) | 如果 x<y 则返回 -1,x==y 则返回 0,x>y 则返回 1 |
| exp(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:自然常数