第七篇学习笔记,内容包含Python中一些进阶语法,如条件控制,循环控制等。
条件控制
用if...elif...else语句进行条件控制。每一个条件之后都需要使用冒号,每一个代码块都要使用缩进来标志。如:1
2
3
4
5
6if a == 1:
b = 1
elif a == 2:
b = 2
else a == 3:
b = 3
python中没有switch...case型的语句。
条件控制可以缩写在一行之中,形成所谓的“三目运算符”。其表达形式为val1 if exp else val2,即如果exp为True则运算结果为val1,exp为False则运算结果为val2。如:1
2
3
4b = 9
a = 1 if b > 5 else 2
a
1
循环语句
用while...或者for...来实现循环。
while语句
在使用while语句时采用以下的格式:1
2
3
4while <judgement>:
<statements>
else:
<statements>
后面的else是在条件为False的时候执行的,相当于一个收尾语句,收完这个尾之后退出整个循环体。如:1
2
3
4
5
6
7
8
9a = 1
while a == 1:
print("a is 1")
a = a + 1
else:
print("a is not 1")
...
a is 1
a is not 1
要执行一个死循环的时候可以这么写:1
2while True:
...
使用break语句来终止一个循环。若使用break中止,则else部分不会执行。
如果循环体只有一条语句,那么可以将while和这条语句写在一行。不过这一般没有什么用处。
python中没有do...while循环。
for语句
for结构的一般形式如下:1
2
3
4for <variable> in <seq>:
<statements>
else:
<statements>
当for循环到末尾时就执行else处的语句并退出整个循环体。如:1
2
3
4
5
6
7
8
9
10
11list1 = [1, 2, 3]
for i in list1:
pass
else:
print(i)
# 输出为3
for i in range(10):
pass
else:
print(i)
# 输出为9
使用break语句来终止一个循环。若使用break中止,则else部分不会执行。
有一些函数经常会和for循环搭配使用。如:range()函数。该函数产生一系列等距的数。其语法为range(start, stop[, step]),三个参数均为整数,表示从start开始按step的步长到stop为止。如:1
2
3for i in range(0, 10, 4):
print(i)
# 输出为0 4 8
enumerate函数。该函数可以生成一系列的index-item对,即索引-元素对(为元组)。该函数一般需要传入2个参数,第一个参数为可迭代对象;第二个参数是下标的初始值,缺省值为0。一般的使用方法如下:1
2for index, item in enumerate(thelist, start):
...
注意,这个初始值并不是指从哪里开始,而是计数时从哪一个值开始计数。比如初始值为1,那么就按1, 2, 3, …的方式数数;初始值是0,就按照0, 1, 2, …的方式数数。
断言
使用assert语句进行断言,如果断言失败就抛出AssertionError的异常。
try结构
此部分在异常部分会进行介绍。
del语句
可以使用del语句删除对象引用(即解除变量名称和具体数据之间的绑定),也可以移除数据结构中具体的某部分(如列表中的值,字典的键值对等)。它不直接删除值,因为值会通过垃圾回收的方式进行移除。
del语句的语法是del var1[,var2[,var3[....,varN]]]],这意味着可以一次性删除多个目标。示例如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14v = 1
v
1
del v # 删去某个对象引用
v
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'v' is not defined
s = [1, 2, 3, 4, 5]
del s[3: 5] # 删除切片的方式删除一整段
s
[1, 2, 3]
u, v, w = 1, 2, 3
del u, v, s[0: 1] # 删除多个目标