语法格式:for 变量 in 范围 | 元素 | 集合等:
for循环语法结构列如序列或迭代器作为其参数每次迭代其中一个元素。 与while循环一样,支持break,continue,else语句。 一般情况下,循环次数未知采用while循环,循环次数已知采用for。
一、循环遍历范围
举例:计算指定整数的阶乘
s_max = input (“输入您想要计算阶乘的数字“”:)
max = int(s_max)
for i in range(1,max+1):
result *= i
print (result)
- for-in 循环中的变量的值受 for-in 循环控制,该变量将会在每次循环开始时 自动被赋值 ,因此程序不应该在循环中对该变量赋值。
- for-in 循环可用于遍历任何可选代对象。所谓 可迭代对象 ,就是指该对象中包含一个 —iter—方法,且该方法的返回值对象具有 next() 方法。
- 假如用户输入 7,此时程序将会构建一个 range(1,8) 对象(不包含 8)
二、循环遍历列表
举例:计算列表中所有数值元素的总和、平均值
src_list = [1,22.5,3,45,'ab',78,2]
sum = 0
count = 0
for ele in src_list:
if isinstance(ele, int) or isinstance(ele, float): # 如果该元素是整数或浮点数
print(ele)
sum += ele
count += 1
print('总和为:',sum)
print('平均值为:',sum / count)
- 几何元素进行判断:只有当列表元素是数值(int、float)时,程序才会累加它们
- Python 的 isinstance() 函数,该函数用于判断某个变量是否为指定类型的实例,其中前一个参数是要判断的变量,后一个参数是类型
- 也可以根据索引来遍历元组或列表
src_list = [1,22.5,3,45,'ab',78,2]
for ele in range(1,len(src_list))
三、循环遍历字典
使用 for-in 循环遍历字典其实也是通过遍历普通列表来实现的。前面在介绍字典时己经提到,字典包含了如下三个方法:
- items():返回字典中所有 key-value 对的列表。
- keys():返回字典中所有 key 的列表。
- alues():返回字典中所有 value 的列表。
因此,如果要遍历字典,完全可以先调用字典的上面三个方法之一来获取字典的所有 key-value 对、所有 key、所有 value,再进行遍历。如下程序示范了使用 for-in 循环来遍历字典:
举例: 统计列表中各元素出现的次数
由于我们并不清楚列表中包含多少个元素,因此考虑定义一个字典,以列表的元素为 key,该元素出现的次数为 value
src_list = [12, 45, 3.4, 12, 'fkit', 45, 3.4, 'fkit', 45, 3.4]
statistics = {}
for i in src_list:
if i in statistics: # 如果字典中包含ele代表的key,则 i 元素代表出现次数加1
statistics[i] += 1
else: # 如果字典中不包含i代表的key,说明该元素还未出现过,设为1
statistics[i] = 1
for ele, count in statistics.items(): # 遍历dict,打印出各元素的出现次数
print("%s的出现次数为:%d" % (ele, count))
参考:http://c.biancheng.net/view/2225.html
附:
isinstance() 函数:该函数用于判断某个变量是否为指定类型的实例
>>> isinstance(2,int)
True
>>> isinstance('a',int)
False
>>> isinstance('a',str)
True