- 1 python的基础语法
- 1.1 程序结构
- 1.1.1 缩进分层
- 1.1.2 换行
- 1.1.3 注释
- 1.2 输出和输入
- 1.2.1 输入input()
- 1.2.2 输出print()
- 1.3 标识符和保留字
- 1.3.1 标识符
- 1.3.2 保留字(关键字)
- 1.4 变量
- 1.5 数据类型
- 1.5.1 整数(int)
- 1.5.2 浮点数(float)
- 1.5.3 布尔值(bool)
- 1.5.4 复数(complex)
- 1.5.5 字符串(str)
- 1.6 数据类型的相互转换
- 1.7 运算符
- 1.7.1 算术运算符
- 1.7.2 比较运算符
- 1.7.3 赋值运算符
- 1.7.4 逻辑运算符
- 1.7.5 位运算符
- 1.7.6 成员运算符
- 1.7.7 身份运算符
- 1.7.8 运算符优先级
- 2 字符串(Str)
- 2.1
- 转义字符
- 字符串的方法
- 3 列表(List)
- 3.1 列表的特性
- 3.2 列表的常见操作
- 3.2.1 列表的创建
- 3.2.2 列表的查询
- 3.3 列表的函数
- 3.4 列表的方法
- 3.5 列表的递推式
1 python的基础语法 1.1 程序结构 1.1.1 缩进分层
严格执行缩进,要么用Tab键缩进,要么使用四个空格缩进,但必须保证使用相同的缩进方式。
1.1.2 换行- 换行符,在Windows操作系统中用转义字符n进行换行。
- 在每一行结尾加上继续下一行。如果是以小括号()、中括号[]或大括号{}包含的语句,不必使用就可以直接分成数行。
- 将数行表达式写成一行,只需在每一行结尾添加;即可。
- 单行注释,以#开头,直至换行结束。
#这是单行注释
- 多行注释,用3个单引号或3个双引号将注释括起来。
''' 这是多行注释 这是多行注释 '''
1.2 输出和输入 1.2.1 输入input()
input()接收来自用户的输入,并以字符串的形式返回,使用=将输入的值存储在变量中。
x=int(input('多少岁?')) #如果输入的是数值,就必须类型转换
1.2.2 输出print()
print(value,...,sep='',end='n') #只说明了部分参数
- value是要输出的信息,省略号表示可以有多个要输出的信息。
- sep设置多个输出信息之间的分隔符,默认的分隔符是空格。
- end是一个print()函数中所有要输出信息之后添加的符号,默认为换行符n。end=""可以实现不换行输出的效果。
- print()函数输出的内容可以是数字、字符串以及含有运算符的表达式。
- print()函数输出的目的地可以是显示器和文件。
#将数据输出文件中 #注意:1,路径存在,2.使用file=fp fp=open('D:/text.txt','a+') #a+如果文件不存在就创建,存在就在文件内容的后面继续追加。 print('helloworld',file=fp) fp.close()
1.3 标识符和保留字 1.3.1 标识符
标识符用来识别变量、函数、类、模块及其他对象的名称。
1.3.2 保留字(关键字)
- 由字母、数字、下划线_ 组成,不能包含空格
- 不能以数字开头
- 严格区分大小写
- 保留字不可以当作标识符
#查看保留字 import keyword print(keyword.kwlist)
[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
1.4 变量
| 变量组成部分 | 作用 | 获取方式 |
|---|---|---|
| 标识 | 表示对象所存储的内存地址 | 使用内置函数id(obj)来获取 |
| 类型 | 表示对象的数据类型 | 使用内置函数type(obj)来获取 |
| 值 | 表示对象所存储的具体数据 | 使用print(obj)可以将值打印输出 |
Python允许在一行中为多个变量赋值:
x, y, z = "Orange", "Banana", "Cherry" print(x) print(y) print(z)也可以在一行中为多个变量分配相同的值:
x = y = z = "Orange" print(x) print(y) print(z)
1.5 数据类型
python默认拥有以下内置数据类型:
| 内置数据类型 | |
|---|---|
| 文本类型 | str |
| 数值类型 | int、float、complex |
| 序列类型 | list、tuple、range |
| 映射类型 | dict |
| 集合类型 | set、frozenset |
| 布尔类型 | bool |
| 二进制类型 | bytes、bytearray、memoryview |
- 整数默认十进制,可以表示正数、负数、0 ,长度不限。
- 二进制0b开头;八进制0o开头;十六进制0x开头。
用指数类型表示浮点数,可以使用字母e或E作为幂的符号,以10位基数。e表示a*10b
1.5.3 布尔值(bool)注:浮点数存储存在不精确的问题,不确定尾数一般发生在10-16位置上,不是bug。
print(1.1+2.2) # 3.3000000000000003 #解决方案,导入模块decimal from decimal import Decimal print(Decimal('1.1')+Decimal('2.2')) #3.3
Python一切皆对象,所有对象都有一个布尔值,可以使用内置函数bool()获取对象的布尔值。
布尔值包括True和False,True表示1,Flase表示0。 且布尔值可以进行整数运算。
1.5.4 复数(complex)以下对象的布尔值为Flase(其他对象的布尔值均为True):
False、数值0、None、空字符串、空列表、空元组、空字典、空集合
使用双精度浮点数来表示实数与虚数的部分,复数的符号可以使用字母j或J。
1.5.5 字符串(str)使用real与imag获取复数的实数和虚数部分
a=2.6+0.8j print(a.real) #获取实部 2.6 print(a.imag) #获取虚部 0.8使用complex(real,imag)将real与imag两个数值转换为复数
x=complex(2.6,0.8) print(x) #(2.6+0.8j)
又称不可变的字符序列,使用单引号、双引号或三引号来定义,但只有三引号可以跨行定义。
1.6 数据类型的相互转换
| 函数名 | 作用 | 注意事项 |
|---|---|---|
| str() | 将其它数据类型转成字符串 | 也可以用引号转换 |
| int() | 将其他数据类型转成整数 | 1)文字类str和小数类str无法转整数 2)浮点数转整数时,抹零取整 3)bool可以转整数 |
| float() | 将其他数据类型转成浮点数 | 1)文字类无法转浮点数 2)整数转浮点数,末尾为.0 3)bool可以转浮点数 |
1.7 运算符 1.7.1 算术运算符
| 运算符 | 含义 | 举例 |
|---|---|---|
| + | 相加 | 1+2=3 |
| - | 相减或得负数 | 3-2=1 |
| * | 相乘或返回一个被重复若干次的字符串 | 2*3=6 |
| / | 相除得浮点数 | 4/2=2.0 |
| % | 取模(取余数) 余数=被除数-除数*商 | 5%2=1 9%-4=-3 |
| ** | 幂运算 | 2**3=8 |
| // | 整除 一正一负向下取整 | 7//3=2 -9//4=-3 |
1.7.2 比较运算符
- 不同数据类型之间可混合运算,生成“最宽”的类型。整数、浮点数、复数,逐渐“变宽”。
- 除法应用在整数时,结果为浮点数
- 两个浮点数相除取余数,结果为浮点数
运算结果为bool类型
| 运算符 | 含义 | 举例 |
|---|---|---|
| == | 等于,比较两个对象的value是否相等 | 1==1 返回 False |
| != | 不等于,比较两个对象的value是否不相等 | 1!=2 返回 True |
| > | 大于,x>y返回x是否大于y | 2>3 返回 False |
| < | 小于,x| 2<3 返回 True | |
| >= | 大于等于,x>=y返回x是否大于等于y | 2>=3 返回 False |
| <= | 小于等于,x<=y返回x是否小于等于y | 2<=3 返回 True |
1.7.3 赋值运算符
- 不可以对复数进行比较运算
- 比较运算符可以连在一起处理
赋值运算符表示将右边变量的值赋给左边变量,运算顺序从右到左
| 运算符 | 含义 | 举例 |
|---|---|---|
| = | 赋值运算符 | c=a+b表示将a+b的运算结果赋值给c |
| x op=y | 增强操作符 op为二元操作符 | x op=y等价于x=x op y |
| += | 加法赋值 | 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 |
1.7.4 逻辑运算符支持系列解包赋值,左右两边变量的个数和值的个数要对应。
a,b,c=20,30,40 print(a,b,c) #20 30 40支持两个变量相互赋值。
| 运算符 | 含义 | 举例 |
|---|---|---|
| and | 布尔“与”,x and y表示如果x为False,那么返回False,否则返回y的计算值 当两个都是True时,才返回True | 3<2 and 5 返回 False 3>2 and 5 返回 5 |
| or | 布尔“或”,x or y表示如果x为True,那么返回True,否则返回y的计算值 只要有一个是True时,就返回True | 3<2 or 5 返回 5 3>2 or 5 返回 True |
| not | 布尔“非”,not x表示如果x为True,就返回False;如果x为False,就返回True | not (False) 返回 True |
位运算符把数字看作二进制来进行计算
| 运算符 | 含义 | 举例 |
|---|---|---|
| & | 按位与(位AND),如果两个相应位都为1,则该位的结果为1,否则为0 | |
| | | 按位否(位OR),只要两个相应位有一个为1,则该位的结果为1,否则为0 | |
| ^ | 按位异或(位XOR),当两个对应的二进制相异时,结果为1,否则为0 | |
| ~ | 按位取反,对数据的每个二进制位取反,即把1变为0,把0变为1 | |
| << | 左移动,高位丢弃,低位补0 移一位相当于乘以2 | 12<<2=48 |
| >> | 右移动,高位补0,低位丢弃 移一位相当于除以2 | 12>>2=3 |
1.7.7 身份运算符成员运算符包括in和not in
x in y表示若x在y序列中则返回True
x not in y表示若x不在y序列中则返回True
身份运算符包括is和not is
is是判断两个标识符是不是引用自一个对象
not is是判断两个标识符是不是引用自不同对象
1.7.8 运算符优先级==比较的是对象的值value;is和not is 比较的是对象的标识id
1)()、[]、{}
2)object
3)object[i]、object[1:r]、object.attribute、function()
4)+x、-x、~x
5)x**y
6)x*y、x/y、x%y
7)x+y、x-y、
8)x<
9)x&y
10)x^y
11)x|y
12)<、<=、>、>=、==、!=、is、not is、in、not in
13)not
14)and
15)or、lambda args:expr
lambda运算符能够以表达式的方式创建一个匿名函数
lambda args:exprargs是以逗号隔开的参数列表,expr是对这些参数进行运算的表达式,且只允许有一个表达式
a=lambda x,y:x+y print(a(3,4)) #7
2 字符串(Str) 2.1 转义字符
| 转义字符 | 含义 |
|---|---|
| 在行尾时 | 续行符 |
| \ | 反斜杠 |
| ' | 单引号' |
| " | 双引号" |
| a | 响铃 |
| b | 退格 |
| e | 转义 |
| n | 换行,光标移动到下行首 |
| r | 回车,光标移动到本行首 |
| v | 纵向制表符 |
| t | 横向制表符 |
| f | 换页 |


