【发布时间】:2017-12-30 21:51:28
【问题描述】:
我是 Python 新手,我有一个关于在 while 循环中使用 if 语句的问题:
代码用于编写猜数游戏,直到您输入的数字与生成的随机整数匹配。
示例代码编写如下:
import random
answer=int(random.uniform(1,10))
number=int(input("guess:"))
if number==answer:
print("correct!")
while(number!=answer):
if number > answer:
print("smaller!")
number=int(input("guess again"))
if number < answer:
print("bigger!")
number=int(input("guess again"))
if number == answer:
print("bingo!!")
break
我得到的结果是:
猜测:小 5 个!再猜3大!再猜一猜 4 宾果游戏!!
但是当我在 while 循环中使用 if-elif-elif 或 if-elif-else 而不是多个 if 时,在 first 的情况下猜错了,后来的猜对了,最后的bingo!!没有显示,例如:
import random
answer=int(random.uniform(1,10))
number=int(input("guess:"))
if number==answer:
print("correct!")
while(number!=answer):
if number > answer:
print("smaller!")
number=int(input("guess again"))
elif number < answer:
print("bigger!")
number=int(input("guess again"))
elif number == answer:
print("bingo!!")
break
结果变成:
猜测:小 5 个!再猜3
如图所示,在最后一次正确猜测之后,代码刚刚停止,并且“宾果!!”没有显示出来。
谁能帮我理解为什么在 while 循环中使用多个 if 和 if-elif-else/elif 时会出现这种差异? 非常感谢!
补充说:我最终意识到我的问题是,每次我为number 输入一个新值后,它会从代码中的哪个位置使用新的number 再次运行,这有什么不同当我使用多个 if 或 if-elif-else 时。
【问题讨论】:
-
你不能使用
while(number!=answer):并期望在你的循环中测试number == answer -
我意识到,但在第一个有多个 if 的情况下,结果符合我的预期(即宾果游戏出现了),我想知道为什么会这样......跨度>
标签: python python-3.x if-statement while-loop