for 语句
for 是另一种循环语句,其形式为:
for 迭代变量 in 表达式列表:
循环体
for 用于对序列(例如字符串、元组或列表)或其他可迭代对象中的元素进行迭代。表达式列表会被求值一次,并产生一个可迭代的对象。系统将依次把可迭代对象的每一项赋值给迭代变量,并执行一次循环体。当所有项被耗尽时,将终止循环。
注:Python 的 for 语句更像 C 语言的 foreach 语句。
简单示例:
s = '我爱吃菠菜'
for c in s:
print(c)
以上代码中,字符串 s 是一个序列,将对字符串的每个元素(每个字符构成的子字符串)进行迭代。该段代码将打印:
我
爱
吃
菠
菜
以上代码如果要用 while 循环书写,就得这样写:
s = '我爱吃菠菜'
i = 0
while i < len(s):
print(s[i])
i += 1
从以上代码可以看出,for 循环可以看作是 while 循环的简写。for 循环不用手动判断是否满足迭代条件,因此更不容易出错。当迭代的次数已提前知道时,更推荐使用 for 循环。
Python 有一个内置的的 range() 函数,它返回一个 range 类型,该类型表示不可变的数字序列,通常用于在 for 循环中指定循环的次数。如下所示:
for i in range(5):
print(i)
range() 的完整形式是:
range(stop)
range(start, stop[, step])
其中,start 表示数字序列的起始值,stop 表示终止值(不包含该数本身),step 表示步长。start 和 step 都可以省略。当省略 start 时,默认为 0;当省略 step 时,默认为 1。step 值也可以是负整数,表示序列将递减,这时一般要求 start > stop。
请判断以下三个 for 语句的输出内容:
for i in range(3, 15, 3):
print(i)
for i in range(3, 15, -3):
print(i)
for i in range(15, 3, -3):
print(i)
for 语句也可以嵌套使用,如下示例打印了九九乘法表:
for i in range(1, 10):
for j in range(1, i + 1):
print(f'{j}×{i}={i * j}\t', end='')
print('')
其输出为:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
for 语句也可以带有 else 子句,当迭代结束时,将执行从子句一次。如下所示:
for i in range(3, 0, -1):
print(i)
else:
print('发射!')
将打印:
3
2
1
发射!