Python基本语法
Python的编码规范
1、命名规则
Python语言有一套自己的命名规则。命名规则并不是语法规定,只是一种习惯用法。
(1) 变量名、模块名、包名
通常采用小写,可使用下划线。
(2)类名、对象名
(3)函数名
函数名通常采用小写,并用下划线或单词首字母大写增加名称的可读性。
导入的函数以模块名作前缀。
2、代码缩进与冒号
对于Python而言,代码缩进是一种语法。
3、模块导入的规范
模块是类或函数的集合,用于处理一类问题,使用任何Python模块都必须先导入。模块的导入使用import语句或from…import…语句。
使用第二种导入方式,在调用math模块中的任何函数时,都无需在前面加上“math.”。
使用第二种导入方式时,如果程序中的函数与math模块中的某个函数同名,将被math模块中的同名函数覆盖。第一种导入方式不会覆盖任何既有函数,但使用起来不如第二种方式简洁。
Python变量
1、变量命名规则
变量名的长度不受限制,其中的字符必须是字母、数字或下划线(_),不能使用空格、连字符、标点符号、引号或其他字符
变量名的第一个字符不能是数字,必须是字母或下划线。
Python区分大小写。
不能将Python关键字(或称为保留词)用作变量名。
2、赋值语句
格式:var = value
功能:定义新的变量;让已定义的变量指向特定值。
3、多重赋值
Python运算符与表达式
1、算术运算符和算术表达式
(1)整数运算
名称 | 运算符 | 示例 |
加 | + | >>>3+4 |
| | 7 |
减 | — | >>>5-3 |
| | 2 |
乘 | * | >>>2*3 |
| | 6 |
除 | / | >>>3/2 |
| | 1.5 |
整除 | // | >>>3//2 |
| | 1 |
求余 | % | >>>25%3 |
| | 1 |
乘方 | ** | >>>3**3 |
| | 27 |
① 运算顺序
Python算术运算的规则与常规算术的规则相同。
② 长度不受限制
与其他大多数编程语言不同,Python对整数的长度没有限制,可以执行数十位甚至数百数千位的整数运算。
(2)浮点数运算
所有适合用于整数的算术运算符都可用于浮点数,包括%(求余)和//(整除)
2、关系运算符和关系表达式
关系运算符 | 关系表达式 | 描述 | 优先级 |
< | x<y | 小于 | 优先级相等;但优先级大于==和!= |
> | x>y | 大于 |
<= | x<=y | 小于等于 |
>= | x>=y | 大于等于 |
== | x==y | 等于 | 优先级相等 |
!= | x!=y | 不等于 |
3、逻辑运算符和逻辑表达式
运算符 | 表达式 | 描述 | 优先级 |
and | x and y | 逻辑与,当x为True时,才计算y | 优先级相等 |
or | x or y | 逻辑或,当x为False时,才计算y |
not | not x | 逻辑非 | 优先级大于and和or |
4、三类运算符的优先级
算术运算符优先级最高,关系运算符优先级次之,逻辑运算符优先级最低
Python数据结构
元组
元组是一种不可变序列,即创建之后不能再做任何修改。
元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字甚至元组。
元组通常代表一行数据,而元组中的元素代表不同的数据项。
1、元组的创建
格式:
tuple=(元素1,元素2,…元素n) #定义n个元素组成的元组
tuple=() #定义空元组
tuple=(元素1,) #定义单元素元组
2、元组的访问
元组中元素的值通过索引访问,索引是一对方括号中的数字,索引也称为“下标”。
格式:
tuple[n] #访问第n个元素
tuple[m:n] #访问第1个索引到第2个索引之间的索引元素,但不包括第2个索引指向的元素。其中,n、m可以为0、正、负整数。
3、操作元组
列表
列表是Python中非常重要的数据类型,通常作为函数的返回类型。
列表和元组相似,也是由一组元素组成。列表可包含任何类型的值:数字、字符串甚至序列。
列表与元组的重要差别是列表是可变的,即可以在不复制的情况下添加、删除或修改列表元素。
1、列表的创建
格式:
list=[元素1,元素2,…元素n] #定义n个元素组成的列表
list=[] #定义空列表
list=[x] #定义只包含一个元素的列表,与元组不同,最后的逗号不是必须的
2、列表的使用
列表的使用与元组十分相似,同样支持负数索引、分片以及多元列表等特性,但列表的元素可修改。
与字符串和元组一样,可使用len获取列表长度,还可使用+和*拼接列表。
3、常用列表函数
函数 | 返回值 |
s.append(x) | 在列表s末尾处添加元素x |
s.count(x) | 返回元素x在列表中出现的次数 |
s.extend(lst) | 将lst的所有元素都添加到列表s末尾 |
s.index(x) | 返回第一个x元素的索引 |
s.insert(i,x) | 将元素x插入到索引i指定的元素前面,结果是s[i]=x |
s.pop(i) | 删除并返回s中索引为i的元素 |
s.remove(x) | 删除s中的第一个x元素 |
s.reverse(x) | 反转s中元素的排列顺序 |
s.sort() | 将s的元素按升序排列 |
字典
字典是Python重要的数据类型,字典是由“键-值”对组成的集合,字典中的“值”通过“键”来引用。
字典也称为关联数组、映射或散列表。
与列表一样,字典也是可以改变的:可以添加、删除或修改“键-值”对。
1、创建字典
格式:
dictionary={key1:value1, key2:value2,…, keyn:valuen)} #创建n个“键-值”对组成的字典
dictionar={} #创建空字典
注意,对于字典的键有两个限制(对值没有这两个限制):
ü字典中的键必须独一无二,即在同一个字典中,任何两个键—值对都不能相同;
ü键必须是不可变的。因此,字典键不能是列表、字典
2、字典的访问
字典的访问与元组、列表有所不同,元组和列表是通过数字索引获取对应的值,而字典是通过key值获取相应的value值。
格式:value=dict[key]
说明:
字典的添加、删除和修改只需执行一条赋值语句即可,例如:dict[’x’]=’value’
字典没有remove操作。删除字典元素可调用内置函数del()完成。
3、字典函数
函数名 | 返回的值 |
d.item() | 返回一个由字典d的键—值对(key,value)组成的视图(view) |
d.keys() | 返回一个由字典d的键组成的视图 |
d.value() | 返回一个有字典d的值组成的视图 |
d.get(key) | 返回与key相关联的值 |
d.pop(key) | 删除键key并返回与之相关联的值 |
d.popitem() | 删除字典d中某个键—值对并返回相应的键—值对 |
d.clear() | 删除字典d的所有元素 |
d.copy() | 复制字典d |
d.fromkeys(s,t) | 创建一个新字典,其中的键来自s,值来自t |
d.setdefault(key,v) | 如果键key包含在字典d中,则返回其值;否则返回v并将(key,v)添加到字典d中 |
d.update(e) | 将e中的键—值对添加到字典d中;e可能是字典,也可能是键—值对序列 |
集合(略)
在Python中,集合是一系列不重复的元素。集合类似于字典,但只包含键,而没有相关联的值。
集合分两类:可变集合(set)和不可变集合(frozenset)。对于可变集合,可添加和删除元素,而不可变集合一旦创建就不能更改。
与字典一样,集合的元素排列顺序也是不确定的。
大括号或set() 函数可以用来创建集合。
注意:想要创建空集合,必须使用set() 而不是{}。
Python字符串
在Python中,字符串是除数字外最重要的数据类型。
字符串是一种聚合数据结构,可充分利用索引和切片—用于从字符串中提取子串。
Python中,字符串、列表和元组都属于序列。
1、索引
序列中的所有元素都是有编号的—从0开始递增。这些元素可以通过编号分别访问。
索引有正索引和负索引,可根据实际情况选用。
字符串就是一个由字符组成的序列,处理字符串时,经常需要访问其中的各个字符。
索引0指向第1个字符。
2、分片
与使用索引访问单个元素类似,可以使用分片操作来访问一定范围内的元素。
Python 3支持的分片格式为:S[i:j:k]
表示:索引S对象中的元素,从索引为i直到索引为j-1,每隔k个元素索引一次,第三个限制k为步长,默认为1,也可以使用负数作为步长,步长-1表示分片将会从右至左进行而不是通常的从左至右,实际效果主是将序列反转。
3、序列相加(字符串连接、合并)
之前介绍过,使用“+”完成。除此之外,还可以使用join函数和reduce函数实现字符串的合并。注意:不同类型的数据不能相加。
4、乘法
用数字x乘以一个序列会生成新的序列,在新的序列中,原来的序列被重复x次。
5、成员资格
为了检查一个值是否在序列中,可以使用in运算符。该运算符检查某个条件是否为真,若为真返回True,否则返回False。
6、长度、最小值和最大值
len、min和max都是内置函数。
len—返回序列中包含的元素个数。
min—返回序列中的最小值。
max—返回序列中的最大值。
7、字符串的替换函数
Python字符串自带了两个替换函数,如下表所示
函数名 | 返回的字符串 |
s.replace(old,new) | 将s中的每个old替换为new |
s.expandtabs(n) | 将s中的每个制表符扩展为空格,空格宽度为n |
8、字符串的合并
之前介绍过,Python可使用“+”连接不同的字符串。
除此之外,还可以使用join函数(是split方法的逆方法)和reduce函数实现字符串的合并。
9、拆分函数
拆分函数将字符串拆分成多个子串。
函数 | 返回的字符串 |
s.partition(t) | 将s拆分为三个字符串(head、t和tail),其中head为t前面的子串,tail为t后面的子串。返回值为元组 |
s.rpartition(t) | 与partition相同,但从s的右端开始搜索t。返回值为元组 |
s.split(t) | 以t为分隔符,将s划分成一系列子串,并返回一个由这些子串组成的列表 |
s.rsplit(t) | 与split相同,但从s的右端开始搜索t |
s.splitlines() | 返回一个由s中的各行组成的列表 |