我有这个问题,当我运行程序它一切顺利,但当用户得到正确的答案,代码不打印既不打印("好工作!")或打印("正确").代码有什么问题?
import random firstNumber = random.randint(1, 50) secondNumber = random.randint(1, 50) result = firstNumber + secondNumber result = int(result) print("Hello ! What\'s your name ? ") name = input() print("Hello !"+" "+ name) print("Ok !"+" "+ name +" "+ "let\'s start !") print("What is"+ " " + str(firstNumber) +"+"+ str(secondNumber)) userAnswer = int(input("Your answer : ")) while (userAnswer != result) : if (userAnswer > result) : print("Wrong") else: print("Wrong") userAnswer = int(input("Your answer : ")) if (userAnswer == result): print("Correct") print("Good Job!") break input("\n\n Press to exit")
Marijke Vonk.. 18
问题是只要第一个答案错误,你的while循环才会运行.while (userAnswer != result)
如果第一个答案是正确的,Python将忽略缩进的所有内容.因此逻辑上第一个正确的答案永远不会达到print("Correct")
,因为这将要求答案是错误的(启动while循环)和右((到达"正确")).
一种选择是摆脱while循环,只使用if.你有两次这样的机会,然后输了.
if (userAnswer == result): print("Well done!") else: print("Wrong") userAnswer = int(input("Your answer : ")) if (userAnswer == result): print("Correct") print("Good Job!") else: print("Nope all wrong you lose")
另一种选择是使用While进行无限循环.(比如@csharpcoder说)
while (True) : userAnswer = int(input("Your answer : ")) if (userAnswer == result): print("Correct") print("Good Job!") break else: print ("Wrong answer")
在最后一个选项中,错误的答案会得到"错误的答案",而while循环会再次启动,因为True
当然它仍然是True.所以你再试一次,直到你得到正确的答案,这将带你"正确,好工作",然后打破(这会停止循环).
我在while循环中苦苦挣扎,并且有点在我的脑海中,缩进意味着Python将它视为"一件事"并且如果我用一些错误的东西开始它就跳过它.
问题是只要第一个答案错误,你的while循环才会运行.while (userAnswer != result)
如果第一个答案是正确的,Python将忽略缩进的所有内容.因此逻辑上第一个正确的答案永远不会达到print("Correct")
,因为这将要求答案是错误的(启动while循环)和右((到达"正确")).
一种选择是摆脱while循环,只使用if.你有两次这样的机会,然后输了.
if (userAnswer == result): print("Well done!") else: print("Wrong") userAnswer = int(input("Your answer : ")) if (userAnswer == result): print("Correct") print("Good Job!") else: print("Nope all wrong you lose")
另一种选择是使用While进行无限循环.(比如@csharpcoder说)
while (True) : userAnswer = int(input("Your answer : ")) if (userAnswer == result): print("Correct") print("Good Job!") break else: print ("Wrong answer")
在最后一个选项中,错误的答案会得到"错误的答案",而while循环会再次启动,因为True
当然它仍然是True.所以你再试一次,直到你得到正确的答案,这将带你"正确,好工作",然后打破(这会停止循环).
我在while循环中苦苦挣扎,并且有点在我的脑海中,缩进意味着Python将它视为"一件事"并且如果我用一些错误的东西开始它就跳过它.