• 技术文章 >Python技术 >Python基础教程

    Python for循环及用法详解

    silencementsilencement2019-06-29 13:38:50原创3532

    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)时,程序才会累加它们,这样就可以计算出列表中数值元素的总和。

    专题推荐:for循环
    上一篇:Python字符串大小写转换的函数及用法 下一篇:Python函数关键字参数及用法

    相关文章推荐

    • Python函数定义、函数调用详解• Python如何进行进程间的通信

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网