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

    PY流程控制之for循环

    为什么有了while循环,还需要有for循环呢?不都是循环吗?for循环能够控制,而while不可控。

    遍历list

    # 取出列表中的值
    lis = ['dapao',180,'male',['sing','dance','rap']]
    for i in lis:
    	print(i)
    '''
    dapao
    180
    male
    ['sing', 'dance', 'rap']
    '''
    

    遍历字典

    字典也有取多个值的需求,字典可能有while循环无法使用了,这个时候可以使用我们的for循环。

    dic = {'name': 'wzh', 'age': 19}
    
    for i in dic:
        # 取出i的keys
        print(i)
    '''
    name
    age
    '''
    

    简单遍历字典只能取出字典的key。下面是更骚的方法:

    dic.items() # 取出字典的键值对
    dic.key() # 取出字典的关键字
    dic.value() # 取出字典的value值
    

    按索引遍历

    for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值。

    # for循环按照索引取值
    name_list = ['nick', 'jason', 'tank', 'sean']
    for i in range(len(name_list)):
        print(i, name_list[i])
    '''
    0 nick
    1 jason
    2 tank
    3 sean
    '''
    

    扩展—range()

    range表示范围,顾头不顾尾,放在for循环里表示循环次数

    range(5) # 0,1,2,3,4 
    range(1,5) # 1,2,3,4
    for i in range(1,4):
        print(i) # 1,2,3
    

    for + break

    与while + break一样,for循环跳出本层循环。

    # for+break
    name_list = ['nick', 'jason', 'tank', 'sean']
    for name in name_list:
        if name == 'jason':
            break
        print(name) # 终止循环,只打印上一次循环的'nick'
    

    for + continue

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

    # for+continue
    name_list = ['nick', 'jason', 'tank', 'sean']
    for name in name_list:
        if name == 'jason':
            continue
        print(name) # 跳出本次循环,打印'nick','tank','sean'
    

    for循环嵌套

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

    # 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内部代码块。

    # for+else
    name_list = ['nick', 'jason', 'tank', 'sean']
    for name in name_list:
        print(name)
    else:
        print('for循环没有被break中断掉')
    '''
    nick
    jason
    tank
    sean
    for循环没有break中断掉
    '''
    
    

    for循环实现loading......

    import time
    
    print('Loading', end='')
    for i in range(6):
        print(".", end='')
        time.sleep(0.2) # 时钟休眠令该循环每隔0.2s执行一次
    
    

    扩展—原位打印

    /r可实现将打印结果覆盖上一次打印结果

    # 进度条实例
    import time
    scale = 10
    print("执行开始".center(scale // 2, "-"))
    start = time.perf_counter()
    for i in range(scale + 1):
        a = '*' * i
        b = '.' * (scale - i)
        c = (i / scale) * 100
        dur = time.perf_counter() - start
        print("
    {:^3.0f}%[{}->{}]{:.2f}s".format(c, a, b, dur), end='')
        time.sleep(0.1)
    print("
    " + "执行结束".center(scale // 2, '-'))
    '''
    -执行开始
    100%[**********->]1.03s
    -执行结束
    '''
    
    
  • 相关阅读:
    Objective-C 和 Swift 第三方库使用
    如何在Swift的代码中使用OC的代码, 在OC的代码中使用Swift的代码?
    swift之水纹动画
    HandyJSON.Metadata.Class Xcode10.2, swift5.0 报错 linker command failed with exit code 1
    Python开发【第十篇】:CSS (二)
    Python开发【第十篇】:CSS --无内容点击-不进去(一)
    Python开发【第九篇】:HTML (二)
    Python开发【第九篇】:HTML --无内容点击-不进去(一)
    Python开发【第八篇】:网络编程
    Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)
  • 原文地址:https://www.cnblogs.com/dadazunzhe/p/11284719.html
Copyright © 2011-2022 走看看