看起来第一个问题将是一个无限循环,因为您检查每次迭代的条件对于上述代码将始终为真。当你循环时,你需要确保你改变了一些东西,使循环更接近那个条件。首先,您的代码应如下所示:
loop = 1
while loop == 1:
foo = 1
guessfoo = input('Guess my number: ')
if foo == guessfoo:
print('Well done, You guessed it!')
loop = 0
if foo != guessfoo:
print('Oh no, try again')
如果确实猜到了数字,这将导致循环完成。
下一个问题是input返回一个String,所以检查输入的数字是否等于预期的数字总是会失败。在 python 中,使用int() 函数将字符串转换为数字,因此该行如下所示:
guessfoo = int(input('Guess my number: '))
此时,您应该有一个正常工作的循环。但是,您可以做一些事情来简化您的代码。这里有一些建议,从最简单的调整开始,然后转向更简洁的代码。
第一步可以使用if...else 来确保只执行一个条件,并且您只需检查一次foo 的值。如果条件为真,则执行第一个分支;如果失败,则继续执行else 块。
loop = 1
while loop == 1:
foo = 1
guessfoo = int(input('Guess my number: '))
if foo == guessfoo:
print('Well done, You guessed it!')
loop = 0
else:
print('Oh no, try again')
这可行,但我们也可以在循环条件下移动检查以确保正确结果。这样,程序只会循环直到显示数字:
foo = 1
guessfoo = 0
while foo != guessfoo:
guessfoo = int( input( 'Guess my number: ' )
if guessfoo != foo:
print( 'Oh no, try again' )
print( 'Well done, You guessed it!' )
现在只有foo == guessfoo时才会显示成功消息。这个循环更清晰、更简单。
作为初学者,您选择了一个寻求帮助的好地方!欢迎使用 StackOverflow!