for-in 循环专门用于遍历范围、列表、元素和字典等可迭代对象包含的元素。
for-in 循环的语法格式如下
for 变量 in 字符串|范围|集合等:
statements
对于上面的语法格式有以下两点说明:
for-in 循环中变量的值是由for-in 循环控制的,每次循环开始时都会自动赋值,所以程序不要在循环中赋值。
for-in 循环可用于迭代任何替代生成对象。所谓可迭代对象是指该对象包含一个__iter__方法,该方法的返回值对象有next()方法。
for-in 循环可用于迭代一个范围。例如,以下程序使用 for-in 循环来计算指定整数的阶乘:
s_max = input("请输入你想计算的阶乘:")
mx = int(s_max)
result = 1
# 使用for-in循环遍历范围
for num in range(1, mx + 1):
result *= num
print(result)
上面程序将会根据用户输入的数字进行循环。假如用户输入 7,此时程序将会构建一个 range(1,8) 对象(不包含 8),因此 for-in 循环将会自动循环 7 次,在每次循环开始时,num 都会被依次自动赋值为 range 所包含的每个元素。
for-in 循环中的变量完全接受 for-in 循环控制,因此该变量也被称为循环计数器。
运行上面程序,如果输入 7,将会看到如下运行过程:
请输入你想计算的阶乘:7
5040
程序对 for-in 循环的循环计数器赋值在语法上是允许的,但没有什么意义,而且非常容易导致错误。例如如下程序:
for i in range(1, 5):
i= 20
print("i: ",i);
上述程序中的粗体代码为循环计数器 i 赋值,这导致程序在每次循环时首先为变量 i 赋值。当程序刚进入循环体时,i被重新赋值为20,所以在循环体中看到的i总是20。运行上面的程序,你会看到如下输出:
i: 20
i: 20
i: 20
i: 20for-in 循环遍历列表和元组
使用for-in循环遍历列表和元组时,如果列表或元组有多个元素,则for-in循环的循环体会被执行多次,每个元素执行一次,循环计数器将被赋值为元素的值依次。价值。
如下代码使用 for-in 循环遍历元组:
a_tuple = ('crazyit', 'fkit', 'Charlie')
for ele in a_tuple:
print('当前元素是:', ele)
当然,也可按上面方法来遍历列表。例如,下面程序要计算列表中所有数值元素的总和、平均值:
src_list = [12, 45, 3.4, 13, 'a', 4, 56, 'crazyit', 109.5]
my_sum = 0
my_count = 0
for ele in src_list:
# 如果该元素是整数或浮点数
if isinstance(ele, int) or isinstance(ele, float):
print(ele)
# 累加该元素
my_sum += ele
# 数值元素的个数加1
my_count += 1
print('总和:', my_sum)
print('平均数:', my_sum / my_count)
上述程序使用for-in循环遍历列表元素,判断几何元素:只有当列表元素为数值型(int,float)时,程序才会累加,使得列表中数值元素的总和可以计算列表。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python赋值运算符的使用方法01/01
- ♥ 如何快速提高Python功力02/26
- ♥ python如何垂直输出09/14
- ♥ python 列表生成器如何简化循环?10/07
- ♥ Python初学者的urlopen()详解10/06
- ♥ python最短路径问题介绍12/26
内容反馈