8.01 PY流程控制之for循环

mac2022-06-30  81

8.01 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("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c, a, b, dur), end='') time.sleep(0.1) print("\n" + "执行结束".center(scale // 2, '-')) ''' -执行开始 100%[**********->]1.03s -执行结束 '''

转载于:https://www.cnblogs.com/dadazunzhe/p/11284719.html

最新回复(0)