本笔记是基于《Python学习手册-原书第五版》第十三章 whlie循环和for循环
while语句
while语句提供了一种编写通用循环的方式。只要头部行的测试一直计算为真值,那么它就会重复执行一个语句块。
# while语句的一般表达式
while test:
statements
else:
statements
Python没有do until循环语句。但是可以模拟类似的功能。
while True:
...loop body...
if exitTese():break
break语句和continue语句
break语句会立即从循环中跳出。
# 按stop退出的小程序
while True:
name = input("请输入你的名字")
if name == 'stop':
break
age = input("请输入你的年龄")
print("你好", name, '=>', int(age)*365)
continue会立即跳到循环的顶端。
# 使用continue语句获取0~10的偶数
x = 10
while x:
x -= 1
if x % 2 != 0:
continue
print(x, end=' ')
# 等效语句
x = 10
while x:
x -= 1
if x % 2 == 0:
print(x, end=' ')
pass语句
pass语句是无运算的占位语句,当语法要求有一条语句却没有任何实际的语句可写时,就可以使用它。通常用于为符合语句编写一个空的主体;用于忽略try语句所不活的异常;定义空的类对象;携带属性并扮演其他编程语言中的结构体或记录的角色。
for语句
for语句可以遍历序列或其他可迭代对象内的元素,并对每个元素运行一个代码块。
for循环的首行制定了一个赋值目标以及你想遍历的对象。首行后面是你想重复的语句块。
for target in object:
statements
if test:break
if test:continue
else:
statements
range函数
range是一个与循环相关的函数。会按需产生元素的可迭代对象。
>>> list(range(-5,5))
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]
# range通常与for语句合用
for i in range(3):
print(i, 'baby')
# 运行结果
0 baby
1 baby
2 baby
zip函数
zip函数允许我们使用for循环并行访问多个序列。
# zip函数
>>> L1 = [1,2,3,4]
>>> L2 = [5,6,7,8]
>>> list(zip(L1,L2))
[(1, 5), (2, 6), (3, 7), (4, 8)]
# zip函数和for循环合用
>>> for (x,y) in zip(L1, L2):
print(x,'+', y, '==', x+y )
1 + 5 == 6
2 + 6 == 8
3 + 7 == 10
4 + 8 == 12
enumerate函数
enumerate能够同时给出偏移量和元素。会返回一个生成器对象。
>>> S = 'Python'
>>> for (offset, item) in enumerate(S):
... print(item, '字母是第', offset, '个字母')
P 字母是第 0 个字母
y 字母是第 1 个字母
t 字母是第 2 个字母
h 字母是第 3 个字母
o 字母是第 4 个字母
n 字母是第 5 个字母