[英]Beginner python - stuck in a loop
我有两个beginnerer程序,两个都使用“ while”功能,一个程序正常工作,另一个使我陷入循环。 第一个程序是这个;
num=54
bob = True
print('The guess a number Game!')
while bob == True:
guess = int(input('What is your guess? '))
if guess==num:
print('wow! You\'re awesome!')
print('but don\'t worry, you still suck')
bob = False
elif guess>num:
print('try a lower number')
else:
print('close, but too low')
print('game over')``
它给出了可预测的输出;
The guess a number Game!
What is your guess? 12
close, but too low
What is your guess? 56
try a lower number
What is your guess? 54
wow! You're awesome!
but don't worry, you still suck
game over
但是,我也有此程序,该程序不起作用。
#define vars
a = int(input('Please insert a number: '))
b = int(input('Please insert a second number: '))
#try a function
def func_tim(a,b):
bob = True
while bob == True:
if a == b:
print('nice and equal')
bob = False
elif b > a:
print('b is picking on a!')
else:
print('a is picking on b!')
#call a function
func_tim(a,b)
哪个输出;
Please insert a number: 12
Please insert a second number: 14
b is picking on a!
b is picking on a!
b is picking on a!
...(repeat in a loop)....
有人可以让我知道为什么这些程序不同吗? 谢谢!
在第二个示例中,用户没有机会在循环内输入新的猜测,因此a
和b
保持不变。
在第二个程序中,如果两个新数字不相等,则永远不会给用户机会。 将这些行放在循环内您从用户那里获得输入的位置,如下所示:
#try a function
def func_tim():
bob = True
while bob == True:
#define vars
a = int(input('Please insert a number: '))
b = int(input('Please insert a second number: '))
if a == b:
print('nice and equal')
bob = False
elif b > a:
print('b is picking on a!')
else:
print('a is picking on b!')
#call a function
func_tim()
在第二个程序中,如果b > a
,您将返回循环,因为bob
仍然为true
。 您忘了要求用户再次输入..这样尝试
def func_tim():
while 1:
a = int(input('Please insert a number: '))
b = int(input('Please insert a second number: '))
if a == b:
print('nice and equal')
break
elif b > a:
print('b is picking on a!')
else:
print('a is picking on b!')
func_tim()
如果您的程序不正确,则您的第二个程序不允许用户重新输入猜测。 将input
放入while循环中。
附加提示:不要像variable == True
那样进行检查,只需while variable:
说while variable:
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.