一、for循环
- 含义:批量的执行某些重复的事情
- 循环关键字:for、in、while、break、continue、else(python独有)
- for循环语法:
for循环的执行次数根据容器中元素的个数确定
for循环每次执行,变量都会从容器中按照顺序获取元素
for 变量 in 容器: # 容器可以单独存在
代码块
- range(M,N,step)
M代表起始范围(不写默认为0),N代表结束范围,M、N组成左闭右开区间
step为正整数时表示正向取元素,为负整数时表示逆向取元素
step:步长,跨过指定宽度获取元素。(step = 1 时可以不写,step默认为1)
当M默认为0时要看step步长是否为1,若不唯一,要加上M=0
range(1, 100, 1) —>从[1,100)中连续获取每个整数(若不写最后1,则默认为1)
range(1, 100, 5) —>从[1,100)中每间隔4个元素获取一个元素,步长为5(每获取一个元素+5)
示例:
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)中连续获取每个整数
for i in range(100, 1, -1):
print(i)
练习:对100以内的偶数求和
total_1 = 0
for i in range(0, 101, 2): # 当M默认为0时要看step步长是否为1,若不唯一,要加上M=0
total_1 += i
print(total_1)
二、while循环
一般来说for循环用于执行次数确定的循环,while循环适合次数不确定的程序。但while循环也可以用来对次数确定的程序编程
while循环语法:
while条件:
代码块
当条件成立时while循环才能够正常执行
条件不成立时,while循环不执行,循环里面的代码块也不执行
示例:
total = 0
i = 1
while i <= 100:
total += i
i += 1
print(total)
break、continue
break:结束其所在循环的执行(根据缩进判断break属于哪一块程序)
continue:结束其所在循环的本次循环
示例:
for i in range(1, 11):
if i % 2 == 0:
continue # continue下面就不执行
else:
print(1)
练习:猜数字游戏,如果猜大,提示小一点;如果猜小,提示大一点;猜对,直接结束程序
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 # 猜对之后触发break结束程序执行
在这两个示例中的区别在于:
continue结束的时if条件,但else仍在执行。
break时结束整个while循环
三、嵌套循环
for循环和while循环都可以嵌套
for循环中变量如果没有被使用,可以简写为 _
示例:
for _ in range(5):
for i in range(1, 11):
print(i)
注意:循环里面的循环不可以再次使用 _ 来简写
练习:打印九九乘法表
# 外层循环代表行
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()
在这里使用f字符串和format方法都可以。但为了看起来更加方便,f字符串可以使用转义字符\t将长度补全为4字符,format方法可以直接在结果处打印字符长度补全
为什么这里不用sep来间隔开?
因为这里打印的是一个整体,而不是一个接一个打印
四、for-else循环
for-else语法,for循环非正常结束时else语句不执行
for循环正常结束,触发else
for-else语法:
for 变量 in 容器
代码块
else:
代码块
练习:找出100以内所有的素数
for i in range(2, 101):
if i == 2:
print('2是素数')
else:
for j in range(2, i):
if i % j == 0:
print(f'{i}不是素数')
break
else:
print(f'{i}是素数')
五、如何安装三方模块
- 修改python镜像源:阿里云、华为云、豆瓣等
pip config set global.index-url https:///simple
安装三方模块
方法一:
pip install 模块名
windows系统:pip install tqdm
MacOS:pip3 install tqdm
方法二:
使用pycharm提供的可视化安装
widnows系统 --> file -> settings -> project -> python interpreter -> +
MacOS系统 --> pycharm -> preferences -> project ->python interpreter -> +
六、进度条的使用
有进度条不能有print、有print不能有进度条
tqdm(容器)
示例:
for i in tqdm(range(1, 100000000)):
pass
for i in range(1,10):
for j in tqdm(range(1,100)):
pass