Python程序流程控制语句:for循环


for循环

Python使用for循环遍历任何可迭代对象,将可迭代对象中的元素依次获取,获取完最后一个元素后循环停止。

for循环的基本结构

for循环语法如下:

for variable in sequence:
    statements
else:
    statements

else部分可以省略。sequence是可迭代对象,for循环依次将sequence中的元素获取赋值给变量variable,每循环一次,variable被赋值一次,直到sequence中的最后一个元素被获取完,循环结束。流程图如图:
在这里插入图片描述

示例如下:

>>> s = [1,2,3,4,5]
>>> for item in s: # 依次将列表中的元素赋值给item,取完最后一个元素5,循环停止
...		print(item)
1
2
3
4
5

for循环执行完后执行esle下的语句块;如果for循环中途退出,则不执行else下的语句块,示例如下:

>>> s = [1, 2, 3, 4, 5]
>>> for item in s:
...    print(item)
>>> else: # for循环正常运行完后会执行else下的语句块
...    print('for循环执行完毕')
1
2
3
4
5
for循环执行完毕   
>>> s = [1, 2, 3, 4, 5]
>>> for item in s:
...    if item < 3:
...        print(item)
...    else:
...        break
>>> else: # for循环被break语句断开,没有运行完,不执行else下的语句块
...    print('for循环执行完毕')
1
2

range()函数

range()函数可以生成一个数列,语法如下:

range(start, stop[, step])

参数:

  • start: 开始值。默认值是0,可以省略;
  • stop: 结束值,不包括 结束值;
  • step:步长,默认为1。

返回值:range对象

range()函数的返回值是一个数列,开始值能够取到,结束值取不到,是一个左闭右开的区间,这个数列是一个可迭代对象,能够使用for循环遍历其中的值,也可以使用list()函数将其转换为一个列表,示例如下:

>>> print(range(1, 5)) # 生成开始值是1,结束值是4,步长为1的数列,左闭右开的区间
range(1, 5) # range对象
>>> for i in range(1, 5): # 使用for循环遍历range对象的值
...		print(i)
1
2
3
4

# 使用list()函数将range对象转换成列表输出
>>> s = list(range(5)) # range(5)等同于range(0, 5),开始值默认为0,步长默认为1
>>> print(s)
[0, 1, 2, 3, 4]

for循环的常用范围

for循环能够对可迭代对象进行循环遍历,可在for循环中用多个变量来迭代序列对象,例如使用dict.items()方法返回的元组可以用两个变量来接收元组中的元素,示例如下:

>>> d1 = {
    
    'name':'lilei', 'age':20, 'grade':'three'}
>>> for k, v in d1.items(): # 使用变量k, v接收元组中的元素
... 	print(k, v)
	
name lilei
age 20
grade three
>>> for (a, b) in [(1,2),(3,4),(5,6),(7,8)]:
... 	print(a, b)

1 2
3 4
5 6
7 8

for循环的嵌套

for循环可以嵌套使用,即在for循环内部可以使用for循环,双层或者更多层都是被支持的,示例如下:

例:打印九九乘法表

>>> for i in range(1, 10): 
...    for j in range(1, i + 1):
...        print('%s * %s = %s' % (i, j, i * j), end=' ')
...    print()

1 * 1 = 1 
2 * 1 = 2 2 * 2 = 4 
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

外层for循环中变量i分别被赋值为:1,2,3,4,5,6,7,8,9。当i=1时,内层for循环j可以被赋值为:1。此时i=1,j=1,然后执行打印’1 * 1 = 1’,print函数不换行,内层循环执行完成;执行print()进行换行。外层循环进入下一层,当i=2时,内层循环j可以被赋值为:1,2。内层循环第一次循环时:i=2,j=1,打印’2 * 1 = 2’,print函数不换行,内层循环进行第二次循环:i=2,j=2,打印’2 * 2 = 4’,内层循环结束,执行print()进行换行。外层循环进入下一层,i = 3…

依次类推,外层循环循环一层,内层循环循环一圈,内层循环结束循环后,外层循环才能进入下一层。

for循环和if条件语句也可以嵌套,示例如下:

计算1~100之间能被3整除的数的和

>>> s = 0
>>> for i in range(1, 101):
...		if i % 3 == 0: # 满足if条件的执行求和
...			s += i
>>> print(s)
1683

猜你喜欢

转载自blog.csdn.net/shield911/article/details/124183534