第七篇学习笔记,内容包含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
49 b =
1 if b > 5 else 2 a =
a
1
循环语句
用while...
或者for...
来实现循环。
while
语句
在使用while
语句时采用以下的格式:1
2
3
4while <judgement>:
<statements>
else:
<statements>
后面的else
是在条件为False
的时候执行的,相当于一个收尾语句,收完这个尾之后退出整个循环体。如:1
2
3
4
5
6
7
8
91 a =
while a == 1:
"a is 1") print(
1 a = a +
else:
"a is not 1") print(
...
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
141 v =
v
1
del v # 删去某个对象引用
v
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'v' is not defined
1, 2, 3, 4, 5] s = [
del s[3: 5] # 删除切片的方式删除一整段
s
[1, 2, 3]
1, 2, 3 u, v, w =
del u, v, s[0: 1] # 删除多个目标