for 语句

for 语句

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 表示步长。startstep 都可以省略。当省略 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
发射!
while 语句跳转语句