python for循环

格式:

for 变量 in 字符串|范围|集合等:

    statements

说明:1.for-in 循环中的变量的值受 for-in 循环控制,该变量将会在每次循环开始时自动被赋值,因此程序不应该在循环中对该变量赋值。

2.for-in 循环可用于遍历任何可选代对象。所谓可迭代对象,就是指该对象中包含一个 __iter__ 方法,且该方法的返回值对象具有 next() 方法。

用法:

1.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 循环控制,因此该变量也被称为循环计数器。

2.for-in 循环遍历列表和元组

    在使用 for-in 循环遍历列表和元组时,列表或元组有几个元素,for-in 循环的循环体就执行几次,针对每个元素执行一次,循环计数器会依次被赋值为元素的值。

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)

上面程序使用了 Python 的 isinstance() 函数,该函数用于判断某个变量是否为指定类型

3.for-in用于循环字典

字典的3个方法:keys()、values()、items()分别返回键、值、键值对的对应的列表

字典的循环同样也可以从这3个方面入手

my_dict = {'语文': 89, '数学': 92, '英语': 80}

# 通过items()方法遍历所有key-value对

# 由于items方法返回的列表元素是key-value对,因此要声明两个变量

for key, value in my_dict.items():

    print('key:', key)

    print('value:', value)

print('-------------')

# 通过keys()方法遍历所有key

for key in my_dict.keys():

    print('key:', key)

    # 在通过key获取value

    print('value:', my_dict[key])

print('-------------')

# 通过values()方法遍历所有value

for value in my_dict.values():

    print('value:', value)

4.for-in循环并计数

for-in循环列表,创建字典用于计数

src_list = [12, 45, 3.4, 12, 'fkit', 45, 3.4, 'fkit', 45, 3.4]

statistics = {}

for ele in src_list:

    # 如果字典中包含ele代表的key

    if ele in statistics:

        # 将ele元素代表出现次数加1

        statistics[ele] += 1

    # 如果字典中不包含ele代表的key,说明该元素还未出现国

    else:

        # 将ele元素代表出现次数设为1

        statistics[ele] = 1     

# 遍历dict,打印出各元素的出现次数

for ele, count in statistics.items():

    print("%s的出现次数为:%d" % (ele, count))

最后一行格式化输出

你可能感兴趣的:(python for循环)