循环控制
while循环表达式
当程序从上至下执行时,遇到 while 循环语句,则会判断表达式 是否成立 ,当成立时 则会进入 while 循环体内,执行 循环体内部执行的代码块。直到判断表达式 不成立时 ,则 终止循环。
示例:
例子中导入了一个time模块,方便代码运行的时候看效果。
import time
level = 1
while level <40:
print("刷怪")
print(">>>>")
time.sleep(0.5)
print(">>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>>>>>")
time.sleep(0.5)
print("升级!")
level += 1
print("可以去打关卡BOSS了!")
break 与 continue 语句
· break:
当 循环体 执行的过程中想要 退出循环体,就可以使用到 break 语句。
示例:
例子中导入了time模块和random模块,方便代码执行查看效果。
import time
from random import randint
level = 1
monster = ["哥布林", "野山猪", "40级直升经验果"]
while level <40:
print("刷怪")
m = monster[randint(0, 2)]
if m == "哥布林":
print("发现了野生的哥布林!")
print(">>>>")
time.sleep(0.5)
print(">>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>>>>>")
time.sleep(0.5)
print("升级!")
level += 1
print("当前等级:{}".format(level))
elif m == "野山猪":
print("发现了野生的野山猪!")
print(">>>>")
time.sleep(0.5)
print(">>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>>>>>")
time.sleep(0.5)
print("升级!")
level += 3
print("当前等级:{}".format(level))
else:
print("发现了野生的40级直升经验果!")
print("芜湖,舒服了,搞起,搞起。")
level = 40
print("当前等级:{}".format(level))
break
print("可以去打关卡BOSS了!")
· continue:
continue 语句用于 跳过 当前循环体 剩余部分的代码,直接 开始下一轮循环。它 不会退出和终止循环。
示例:
例子中导入了time模块和random模块,方便代码执行查看效果。
import time
from random import randint
level = 1
monster = ["哥布林", "野山猪", "水晶龙"]
while level <40:
print("刷怪")
m = monster[randint(0, 2)]
if m == "哥布林":
print("发现了野生的哥布林!")
print(">>>>")
time.sleep(0.5)
print(">>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>>>>>")
time.sleep(0.5)
print("升级!")
level += 1
print("当前等级:{}".format(level))
elif m == "野山猪":
print("发现了野生的野山猪!")
print(">>>>")
time.sleep(0.5)
print(">>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>>>>>")
time.sleep(0.5)
print("升级!")
level += 3
print("当前等级:{}".format(level))
else:
print("发现了野生的水晶龙 !")
print("芜湖,打不过,溜了,溜了。")
print("当前等级:{}".format(level))
continue
print("可以去打关卡BOSS了!")
while 的 else 从句
while 循环还可以增加一个 else 从句。当 while 循环 正常执行 完毕,会执行 else语句。
示例:
import time
from random import randint
level = 1
monster = ["哥布林", "野山猪", "40级直升经验果"]
while level <40:
print("刷怪")
m = monster[randint(0, 2)]
if m == "哥布林":
print("发现了野生的哥布林!")
print(">>>>")
time.sleep(0.5)
print(">>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>>>>>")
time.sleep(0.5)
print("升级!")
level += 1
print("当前等级:{}".format(level))
elif m == "野山猪":
print("发现了野生的野山猪!")
print(">>>>")
time.sleep(0.5)
print(">>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>")
time.sleep(0.5)
print(">>>>>>>>>>>>>>>>")
time.sleep(0.5)
print("升级!")
level += 3
print("当前等级:{}".format(level))
else:
print("发现了野生的40级直升经验果!")
print("芜湖,舒服了,搞起,搞起。")
level = 40
print("当前等级:{}".format(level))
break
else:
print("可以去打关卡BOSS了!")
print("等级够了,技术不够,溜了溜了。")
注意:
- else 与 while 平级的缩进方式。
- 如果是被 break 等机制 强制 提前 终止的循环,不会执行 else 语句。
while循环嵌套使用
if 判断可以嵌套,while 当然也可以嵌套。但是建议大家不要嵌套 3 层以上,那样的效率会很低。
问题:
问题一:
生成N个1~1000之间的随机数(N<=1000),N是用户输入的,对于其中重复的数字,只保留一个,把其余数字去掉,然后再把这些数从小到大排序。
回答:
from random import randint
s=set()
try:
num = int(input("请输入一个<=1000整数:"))
for i in range(1,num):
s.add(randint(1,1000))
print(s)
l = list(s)
l.sort()
print(l)
except ValueError:
print("输入值错误,请输入一个<=1000整数")
问题二:
打印出所有“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数字本身。
回答:
da = []
for i in range(100,1000):
a = int(str(i)[2]) ** 3
b = int(str(i)[1]) ** 3
c = int(str(i)[0]) ** 3
if a+b+c == i:
da.append(i)
else:
continue
print("水仙花数有:")
for l in da:
print(l)
问题三:
回答:
print("Have you been studying lately?")
info = input("Please enter the instruction(y/n):")
a = 1
while a:
if info.upper() == "Y":
"""当用户输入y的时候给出选项"""
while 1:
print("very good!", "What did you learn:", "1.python", "2.高数" ,"3.退出", sep="\n")
i = input("Please enter the instruction(1/2/3):")
if i == "1":
print("python不错啊!")
elif i == "2":
print("高数啊?这也太强了!")
elif i == "3":
"""当选项为3的时候退出系统"""
a = 0
break
else:
"""当选项不在范围的时候提示重新选择"""
print("Error output instruction.", "Please input agin!", sep="\n")
continue
elif info.upper() == "N":
"""当用户没有学习,输出提示并退出系统"""
print("Young man, Please study hard!")
break
else:
"""当输入除了y/n的其他值时,则提示输出有误"""
print("Error output instruction.", "Please input agin!", sep="\n")
continue