循环
循环结构
让代码重复执行(代码写一遍,重复执行多次)。
python实现循环结构的工具(for循环、while循环)。
for循环
语法:
for 变量 in 序列:
循环体
说明:
- for - 关键字,固定写法。
- 变量 - 变量名(定义过的或者未定义的都行)。
- in - 关键字,固定写法。
- 序列 - 必须为容器型数据类型的数据(字符串、列表、元组、字典、集合、range、迭代器、生成器等)。
- : - 固定写法
- 循环体 - 结构上,循环体就是和for保持一个缩进的一条或多条语句(至少一条)。
逻辑上,就是需要重复执行的代码。
执行过程
让变量在序列中取值,一个一个取直到取完,每取一个就执行一次循环。
(想要控制for循环的循环次数,只需要控制序列中元素的个数)。
range(N)
产生[0,N)的等差数列,差是1.例如:range(5) - 0,1,2,3,4; range(6) - 0,1,2,3,4,5。
range(M,N)
产生[M,N)的等差数列,差是1。
range(M,N,step)
产生[M,N)的等差数列,差是step。
for循环运用
求和思路:
- 准备数据
- 定义变量保存最后的和(变量默认值为0)
- 通过循环依次获取求和对象
练习:求100以内所有偶数的和
allData2 = 0
for i in range(0, 100, 2):
allData2 += i
print(allData2) # 2450
练习:求100以内所有能被3整除但不能被五整除的数的和
1.
allData3 = 0
for i in range(0, 100):
if i % 3 == 0 and i % 5 != 0:
allData3 += i
print(allData3) # 1368
2.
allData3 = 0
for i in range(3, 100, 3):
if i % 5 != 0:
allData3 += i
print(allData3) # 1368
统计个数
- 定义变量保存最后的个数(变量默认值是0)。
- 通过循环获取每一个统计对象,获取到一个统计对象,个数就在于原来的基础上加1。
# eg: 统计不及格的人数
scores = [99, 80, 67, 55, 40, 81, 72, 51]
count = 0
for i in scores:
if i < 60:
count += 1
print('不及格人数为:', count)
# eg:统计nums中个位数大于5的数的个数
nums = [21, 23, 44, 89, 70, 66, 55]
count = 0
for i in nums:
if i % 10 > 5:
count += 1
print('个位数大于5的数的个数为:', count)
while循环
语法
while 条件语句:
循环体
执行过程
不断判断条件语句是否为True,只要True就一直执行,直到False则跳出。
(控制次数的方式: 保证条件一开始是True,经历过指定次数以后条件会由True变成False)
死循环
条件语句一直都是True。
for循环和while循环的选择
原则上for循环能做的while也能做,但while难度相对大于for。如果循环次数确定使用for循环,不确定就是用while循环。
循环次数不确定
编译时遇到无法确认循环次数的问题(次数由使用程序的用户决定)。
pw = '210410'
value = 0
while value != pw:
value = input('请输入密码(6位)')
if value == pw:
print('密码正确')
break
else:
print('密码错误,请重新输入')