while循环
相比于for循环,while循环就显得简单很多了,先看一下定义格式:
while 条件:
条件成立后需要执行的代码块..
...
简单的案例,从1加到100:
i = 1
temp = 0
while i<= 100:
temp += i
i += 1
print(temp)
执行结果:
5050
while 循环只要条件成立就可以一直执行while下缩进的代码块,如果条件设置为 True 并且没有退出的条件, 程序便会陷入死循环,除非必要,否则我们应该避免程序陷入死循环....
有时候可能是没有办法判断判断循环的次数,比如玩游戏的时候需要判断玩家操作出错,或者血条没有血才判断游戏结束,退出循环
while循环还有两个非常重要的命令,continue 和 break。 continue用与跳过循环中的这次,循环本身不结束,只是跳过执行到continue的这一次循环,而break是直接退出循环。
continue:
i = 0
temp = 0
while i<100:
i += 1
if i == 50:
continue # 当i加到50的时候跳过 continue 后面所有的代码块,不在执行。进入下一次循环.
temp += i
print(temp)
结果就是跳过加50的一次:
5000
break:
i = 0
temp = 0
while i < 100:
i += 1
if i == 51:
break # 当i加到51的时候退出整个循环
temp += i
print(temp)
结果就是从1加到50:
1275
来做一个猜数字的小游戏:
# -*- coding:gbk -*-
import sys
from random import randint # 导入随机整数模块
print("*" * 60)
print("猜数字游戏v1.0".center(60)) # 让字符串居中在60个字符中
while True:
randnum = input("请输入一个最大范围值:")
randnum = randint(0,int(randnum)) # 随进产生一个从0到50之间的整数
print("数字随机生成成功!")
while True:
guess_num_str = input("猜猜数字是多少?:")
guess_num = int(guess_num_str)
if guess_num > randnum:
print("猜大了")
elif guess_num < randnum:
print("猜小了")
elif guess_num == randnum:
print("恭喜你,答对了!!!")
quit = input("再来一局?(y/n):")
if quit.lower() == "y":
break # 退出内层循环,执行外层循环
elif quit.lower() == "n":
sys.exit()
执行效果:
************************************************************
猜数字游戏v1.0
请输入一个最大范围值:60
数字随机生成成功!
猜猜数字是多少?:30
猜小了
猜猜数字是多少?:45
猜大了
猜猜数字是多少?:40
猜大了
猜猜数字是多少?:35
猜小了
猜猜数字是多少?:38
恭喜你,答对了!!!
再来一局?(y/n):y
请输入一个最大范围值:70
数字随机生成成功!
猜猜数字是多少?:35
猜大了
猜猜数字是多少?:18
猜小了
猜猜数字是多少?:25
猜小了
猜猜数字是多少?:28
猜小了
猜猜数字是多少?:29
猜小了
猜猜数字是多少?:30
猜小了
猜猜数字是多少?:33
恭喜你,答对了!!!
再来一局?(y/n):n
D:\Program Files\excrsice>