偷摸学Python第五天:循环结构
古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼
文章目录
- 偷摸学Python第五天:循环结构
- 应用场景
- for-in循环
- range()函数
- 实例1:计算1-100的和
- 实例2:计算1-100偶数的和
- 实例3:计算1-100奇数的和
- while循环
- break 和 continue 语句
- 实例:猜字游戏
- 循环嵌套
- 实例1:通过for...in语句打印99乘法表
- 实例2:通过while语句打印99乘法表
- 今日学习总结
- 明日学习计划
应用场景
需要重复执行某条或某些指令的的时候就用到了循环结构。例如大鱼吃小鱼游戏的小雨只要不会吃到比自己大的鱼的时候就一直不会死。
在Python中构造循环结构有两种做法,一种是for-in
循环,一种是while
循环。
for-in循环
语法结构
for <variable> in <sequence>:
<statements>
range()函数
生成一组数列,range()
的几种用法
range(101)
:可以用来产生0到100范围的整数,需要注意的是取不到101。range(1, 101)
:可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。range(1, 101, 2)
:可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。range(100, 0, -2)
:可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。
实例1:计算1-100的和
# 用来存储每次计算的结果
sum = 0
for i in range(101):
sum += i # 这里等同于sum=sum+1
print(sum)
实例2:计算1-100偶数的和
# 用来存储每次计算的结果
sum = 0
for i in range(0, 101, 2):
sum += i
print(sum)
从0开始,每次步长为2,就跳过了单数
实例3:计算1-100奇数的和
可以从1开始,步长为2,这样就跳过了偶数,也可以通过嵌套分支结构来实现,例如
# 用来存储每次计算的结果
sum = 0
for i in range(101):
if i % 2 == 1: # 因为单数除2余1,所以只有满足这个条件,才可以进行累加计算
sum += i
print(sum)
while循环
while
循环通过一个能够产生或转换出bool
值的表达式来控制循环,表达式的值为True
则继续循环;表达式的值为False
则结束循环。
语法结构
while 判断条件:
执行语句……
通过while
语句来实现1-100累加的结果
# 用来存储每次计算的结果
sum = 0
# 设置开始的值
i = 1
# 设置允许循环的最大值
n = 100
while i <= n:
sum +=i
i +=1
print(sum)
break 和 continue 语句
break
语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止。
continue
语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
代码执行流程
实例:猜字游戏
规则:计算机出一个1到100之间的随机数,玩家输入自己猜的数字,计算机给出对应的提示信息(大一点、小一点或猜对了),如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续;如果次数大于5次,则退出循环。
import random # 导入随机数模块
answer = random.randint(1, 100) # 生成1-100的随机数
counter = 0 # 将次数初始为0
while True:
number = int(input('请输入: '))
if number < answer:
print('大一点')
counter += 1
elif number > answer:
print('小一点')
counter += 1
else:
print('恭喜你猜对了!')
break # 如果猜对了 就跳出循环
if counter >= 5: # 次数大于5则退出这个系统
print('你的智商余额明显不足')
break
print('你总共猜了%d次' % counter)
循环嵌套
和分支结构一样,循环结构也是可以嵌套的,也就是说在循环中还可以构造循环结构
实例1:通过for…in语句打印99乘法表
for x in range(1,10):
for y in range(1,x+1):
print("%d * %d = %d" % (y, x, x*y) , end=" ")
print()
实例2:通过while语句打印99乘法表
x = 1
y = 1
while x <= 9:
y = 1 # 每执行完一次子循环,y重置为1
while y <= x:
print("%d * %d = %d" % (y, x, x*y) , end=" ")
y +=1
x +=1
print()# 每一句结束一个换行
今日学习总结
今天学习了for..in
和while
循环结构语句以及嵌套结构,以及range()
函数和break
、continue
语句,复习了占位符使用
明日学习计划
构造代码逻辑,练习经典案例