批量的执行那个某些重复的事情
循环关键字:for、 in、 while、 break、 continue
for 循环语法:
for 变量 in 容器:
代码块
- for循环执行次数根据容器中元素个数来确定;
- for循环每次执行,变量都会从容器中按照顺序获取元素
练习:计算1-100的累和以及累乘
total = 0
for i in range(1, 101):
total += i
print(total)
total = 1
for i in range(1, 101):
total *= i
print(total)
'''
运行结果
5050
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
'''
- range(M, N, step) —— M代表起始范围,N代表结束范围,M、N组成左闭右开区间。
step叫做步长,可以使用step跨指定宽度获取元素。step等于1时可以不写,默认为1。
step为正整数时表示正向取元素,step为负整数时表示逆向取元素。
练习:
- range(1, 100, 1) —— 从[1, 100)中连续获取每一个整数。
- range(1, 100, 5) —— 从[1, 100)中每间隔4个元素获取一个元素(从[1, 100)中每获取一个元素+5)
for i in range(1, 100, 1):
print(i)
for i in range(1, 100, 5):
print(i)
'''
运行结果
1
2
3
4
5
6
·······(略)
98
99
1
6
11
16
21
·······(略)
86
91
96
'''
练习:对100以内偶数求和
total_1 = 0
for i in range(0, 101, 2):
total_1 += i
print(total_1)
'''
运行结果
2550
'''
02_while循环
for循环执行次数确定
while循环适合次数不确定的程序,也可以用来对次数确定的程序编程。
while循环语法:
while 条件:
代码块
- 当条件成立时,while循环才会被触发,才能正常执行。
练习:计算0-100之间数字的累和
total = 0
i = 1
while i <= 100:
total += i
i += 1
print(total)
'''
运行结果
5050
'''
- break, continue
break:结束其所在循环的执行,根据缩进来判断属于哪个循环
continue:结束其所在循环的本次循环
列如:
for i in range(1, 11):
if i % 2 == 0:
continue
print(i)
else:
print(i)
练习:猜数字游戏,如果猜大了,提示再小一点,如果猜小了,提示再大一点,如果猜对了,结束打印。
from random import randint
num = randint(1, 100)
while True:
mynum = int(input('请输入一个整数:'))
if mynum > num:
print('再小一点')
elif mynum < num:
print('再大一点')
else:
print('猜对啦!')
break
'''
运行结果(利用二分法,最多7次可以猜对)
请输入一个整数:50
再小一点
请输入一个整数:25
再小一点
请输入一个整数:17
再大一点
请输入一个整数:21
再小一点
请输入一个整数:19
猜对啦!
'''
03_嵌套循环
for循环和while循环都可以嵌套
for循环中变量如果没有被使用,可以简写为_
练习:打印九九乘法表
# 外层循环代表行数
for i in range(1, 10):
# 内层循环代表列
for j in range(1, i + 1):
print(f'{j}*{i}={i * j}', end='t') # t:能够将打印结果的长度补全为4的倍数
print()
'''
运行结果
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
'''
04_for-else循环
for-else语法:
for 变量 in 容器:
代码块
else:
代码块
- for-else语法,for循环非正常结束时else语句不执行
- for循环正常结束,触发else语句
练习:找100以内所有的素数 (素数:只有1和其本身两个因子的大于1的正整数)
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}是素数')
'''
运行结果
2是素数
3是素数
4不是素数
5是素数
6不是素数
7是素数
8不是素数
9不是素数
10不是素数
·······(略)
'''
Day3 over!
勤加练习,学之为其所用。



