我的问题是,当我得到正确的数字时,python脚本结束,但没有打印:You win!
import random
number = random.randint(1,100) # This part works fine
guess = input('Guess a number between 1 and 100: ') #Asks question
guess = float(guess)
tries = 10
while guess != number and tries > 0 :
if guess < number: # This part works fine
print('Too low')
tries = tries - 1
print('You have %s tries left' % (tries))
if guess > number:
print('Too high') # This part is also good
tries = tries - 1
print('You have %s tries left' % (tries))
if tries == 0:
print('You lose!')
print('The answer was ' + str(number))
continue
if guess == number :
print('You win!') # Why doesn't this work?
#Python ends at this line if I get it right, but doesn't print: You win!
else :
guess = input('Try Again: ')
guess = float(guess)
pass # WHILE*
我只有11岁,几个月前刚开始编程,请帮助我!
如果猜测正确,则代码无法满足第一个条件:
while guess != number and tries > 0 :
如果猜测完成,循环将在 else 语句之后中断,并且永远不会返回到if
条件检查猜测。
由于在输入正确答案之前无法继续循环,因此您始终可以按如下方式编写:
import random
number = random.randint(1,100) # This part works fine
guess = input('Guess a number between 1 and 100: ') #Asks question
guess = float(guess)
tries = 10
while guess != number and tries > 0 :
if guess < number: # This part works fine
print('Too low')
tries = tries - 1
print('You have %s tries left' % (tries))
if guess > number:
print('Too high') # This part is also good
tries = tries - 1
print('You have %s tries left' % (tries))
if tries == 0:
print('You lose!')
print('The answer was ' + str(number))
continue
else :
guess = input('Try Again: ')
guess = float(guess)
print('You win!')
请记住,这其中有一个错误,会导致您在用户用完猜测后也打印您的 win。我决定把它留在这里,因为我认为它很容易修复,并且对你解决自己学习有好处。但是,如果您希望我为您执行此操作,请随时在评论中写下。
我还建议在您的帖子中使用代码注释。在这种情况下,我会为您的问题提供如下代码:
import random
number = random.randint(1,100) # This part works fine
guess = input('Guess a number between 1 and 100: ') #Asks question
guess = float(guess)
tries = 10
while guess != number and tries > 0 :
if guess < number: # This part works fine
print('Too low')
tries = tries - 1
print('You have %s tries left' % (tries))
if guess > number:
print('Too high') # This part is also good
tries = tries - 1
print('You have %s tries left' % (tries))
if tries == 0:
print('You lose!')
print('The answer was ' + str(number))
continue
if guess == number :
print('You win!') # Why doesn't this work?
# Python ends at this line if I get it right, but doesn't print: You win!
else :
guess = input('Try Again: ')
guess = float(guess)
pass # WHILE*
在代码中进行比较时,通常最好尝试只问一次特定问题(进行比较(。 在这里,我展示了一种方法来重组你的两个问题(正确的猜测和尝试(,只做一次问题。
import random
number = random.randint(1, 100)
guess = input('Guess a number between 1 and 100: ') # Asks question
guess = float(guess)
tries = 10
while True:
tries -= 1
if guess < number:
print('Too low')
print('You have %s tries left' % (tries))
elif guess > number:
print('Too high')
print('You have %s tries left' % (tries))
else:
print('You win!')
break
if tries == 0:
print('You lose!')
print('The answer was ' + str(number))
break
guess = input('Try Again: ')
guess = float(guess)