zoukankan      html  css  js  c++  java
  • 流程控制之for循环

    流程控制之for循环

    一、语法

    有了骚气的while循环,为什么还满足不了那个需求呢,为什么还需要for ,看看下面的问题,给出一个列表,要取出列表里面的所有数据取出来,该怎么做呢,下面看看while如何实现:

    eg(while):

    nums_list = [1, 2, 3, 4]
    
    n = 0
    while n < 4:
        # while n < len(name_list):
        print(nums_list[n])
        n += 1
    

    结果:
    1
    2
    3
    4

    在字典也有去多个值的需求,字典可能有while循环无法使用了,这个时候可以使用我们的for循环,骚操作一下,让他彻底的满足。

    eg:

    info = {'name': 'randy', 'age': 18}
    
    for item in info:
        # 取出info的keys
        print(item)
    

    结果:
    randy
    18

    再看看列表:
    eg:

    nums_list = [1, 2, 3, 4]
    for item in nums_list:
        print(item)
    

    结果:
    1
    2
    3
    4

    看出for循环,骚里骚气的操作了吗,for循环的次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值,在看看下面一波骚操作。

    for i in range(1, 10):  # range顾头不顾尾
        print(i)
    

    1
    2
    3
    4
    5
    6
    7
    8
    9

    二、for+break

    for循环和while循环一样,都可以使用break跳出

    出本层循环。

    # for+break
    nums_list = [1, 2, 3, 4]
    for nums in nums_list:
        if nums == 2:
            break
        print(nums)
    

    结果:

    1

    三、 for+continue

    for循环调出本次循环,进入下一次循环

    # for+continue
    nums_list = [1, 2, 3, 4]
    for nums in nums_list:
        if nums == 2:
            continue
        print(nums)
    

    四、for循环嵌套

    外层循环循环一次,内层循环循环所有的。

    eg:

    # for循环嵌套
    for i in range(3):
        print(f'-----:{i}')
        for j in range(2):
            print(f'*****:{j}')
    

    结果:

    -----:0
    **:0
    **
    :1
    -----:1
    **:0
    **
    :1
    -----:2
    **:0
    **
    :1

    五、for+else

    for循环没有break的时候触发else内部代码块和while+else一样。

    eg:

    # for+else
    nums_list = [1, 2, 3, 4]
    for nums in nums_list:
        print(nums)
    else:
        print('for循环没有被break中断掉')
    

    结果:
    1
    2
    3
    4
    for循环没有被break中断掉

    六、for循环实现loading

    eg(最好在cmd窗口中运行或采用交互的方法):

    import time
    
    print('Loading', end='')
    for i in range(6):
        print(".", end='')
        time.sleep(0.2)
    

    结果:Loading......

    七、总结

    1. for: 与while一样都是解决不停的重复去实现一件事情,但是他们之间也有区别,for可以无需知道遍历列表的长度,而while需要直接长度便于终止循环;一般for使用比while使用次数多;
    2. for...break: 与while一样都是跳出当前所在循环体,并且break只能出现在循环体中;
    3. for...continue: 与while一样都是终止当前循环,继续执行下一次循环,并且continue只能出现在循环体中;
    4. for...else: 与while一样, else代码块会在for循环被break终止循环都会执行else代码块,一旦循环被break,else代码将不会被执行;
    5. for循环嵌套: 当有一件重复要做的事情,里面还有重复的事情要做,则需要使用循环嵌套,解决需求;

    吾性自足,不假外求。

    在当下的阶段,必将由程序员来主导,甚至比以往更甚。
  • 相关阅读:
    ASP.NET MVC : 实现我们自己的视图引擎
    [转] 理解 JavaScript 闭包
    郁闷的disabled
    ASP.NET MVC 使用Post, Redirect, Get (PRG)模式
    获取窗口 高 、宽 的JS代码
    javaScript 中的return和return false
    一种标记是否为AJAX异步请求的思路
    ASP.NET MVC 源码更新预览
    [译]用Visual Studio2012来开发SQL Server 2012商业智能项目
    玩玩Windows Azure
  • 原文地址:https://www.cnblogs.com/randysun/p/12217181.html
Copyright © 2011-2022 走看看