循环
批量的执行某些重复的事情。
循环关键字:for
、in
、while
、break
、continue
、else
for
循环
案例:计算1-100的和
total = 0
for i in range(1, 101):
total += i
print(total)
-
for
循环语法for 变量 in 容器: 代码块
for
循环执行次数根据容器中元素个数确定for
循环每次执行,变量都会从容器中按照顺序获取元素
计算1-100阶乘 total = 1 for i in range(1, 101): total *= i print(total)
-
range
函数-创建一个等差数列range(M,N,step)
-
M代表起始范围(默认为0),N代表结束范围,M、N组成左闭右开区间
-
step步长,可以使用steo跨指定宽度获取元素(step默认为1)
-
range(1, 100, 1) -> 从[1,100)中连续获取每一个整数。
-
range(1, 100, 5) -> 从[1,100)中每间隔4个元素获取一个元素(从[1,100)中每获取一个元素+5)
-
step为正整数时表示正向取元素,step为负整数表示逆向取元素
for i in range(1, 100, 5): print(i)
-
range(101) -> 从[0,101)中连续获取每一个整数
for i in range(101): print(i)
-
range(100, 1, -1) ->从[100, 1)中连续获取每个整数
-
练习:对100以内偶数求和
total_1 = 0 for i in range(0, 101, 2): total_1 += i print(total_1)
-
while
循环
-
for循环执行次数确定。
-
while循环适合次数不确定的程序,也可以用来对次数确定的程序编程。
while循环语法:
while 条件:
代码块
当条件成立时while循环才能够正常执行
total = 0
i = 1
while i <= 100:
total += i
i += 1
print(total)
break
continue
-
break
: 结束其所在的循环执行(执行循环体的时候如果遇到了
break
,那么整个循环直接结束 - 循环体剩下的部分不执行,也不再进入下次循环) -
continue
: 结束其所在循环的本次循环(每次在执行循环体的时候如果遇到了
continue
,那么这次循环结束直接进入下次循环)
for i in range(1, 11):
if i % 2 == 0:
continue
else:
print(i)
练习:猜数字游戏。
如果猜大了,提示再小一点;如果猜小了,提示再大一点;如果猜对了,直接结束程序
from random import randint
num = randint(1, 100)
while True:
myNum = int(input('请输入一个整数(0-100)'))
if myNum > num:
print('再小一点')
elif myNum < num:
print('再大一点')
else:
print('猜对了')
break
二分法可保证100以内的数字在7次之内猜中数字
else
for-else
语法,for
循环非正常结束时else
语句不执行。for
循环正常结束,触发else
语句。
for
-else
语法:
for 变量 in 容器:
代码块
else:
代码块
练习:找出100以内所有的素数。
# 素数: 只有1和本身两个因子的大于1的正整数叫素数。
for i in range(2, 100):
if i == 2:
print('2是素数')
else:
for j in range(2, i):
if i % j == 0:
print(f'{i}不是素数')
break
else:
print(f'{i}是素数')
while
-else
语法:
while 条件语句:
循环体
else:
代码段
else
的存在并不会影响原来的循环的执行;
如果循环自然死亡,循环结束后会执行else
后面的代码段;
如果循环是因为遇到break
而结束的,那么else
后面的代码就不会执行
嵌套循环
-
for循环和while循环都可以嵌套。
-
for循环中变量如果没有被使用,可以简写为_
for _ in range(5): for j in range(1, 11): print(j) # 1-11输出5次
练习:打印九九乘法表
# 外层循环代表行
for i in range(1, 10):
# 内层循环代表列
for j in range(1, i + 1):
# 补充:\t: 能够将打印结果的长度补全为4的倍数
print(f'{i}x{j}={i*j}', end='\t')
print('{}*{}={:<3}'.format(i, j, i*j), end='')
print()
补充:\t: 能够将打印结果的长度补全为4的倍数
安装第三方模块
-
修改Python镜像源:阿里云、华为云、豆瓣、华中科技大学等等镜像源
pip config set global.index-url https://pypi.douban.com/simple
-
安装三方模块
-
pip install模块名
windows系统:
pip install tqdm
MacOS:
pip install tqdm
-
使用pycharm提供的可视化安装。
windows --> file -> settings ->project -> python interpreter -> +
MacOS -> pycharm -> preferences -> project ->python interpreter -> +
-
进度条的使用
-
导入第三方模块
from tqdm import tqdm
-
有进度条不能有print、有print不能有进度条。
(同时存在会找不到进度条)
-
tqdm(容器)
for i in tqdm(range(1, 100000000)):
pass
# 100%|██████████| 99999999/99999999 [00:13<00:00, 7145108.89it/s]
for i in range(1, 5):
for j in tqdm(range(1, 100)):
pass
"""
100%|██████████| 99/99 [00:00<?, ?it/s]
100%|██████████| 99/99 [00:00<?, ?it/s]
100%|██████████| 99/99 [00:00<?, ?it/s]
100%|██████████| 99/99 [00:00<?, ?it/s]
"""
for i in tqdm(range(1, 5)):
for j in range(1, 100):
pass
# 100%|██████████| 4/4 [00:00<?, ?it/s]