我在写一个让你玩猜谜游戏的代码。它会问你是否想玩,然后继续。你知道吗
如果输入的值不在列表中但不起作用,它应该再次询问一个数字。我拿不到。到现在了!你知道吗
import random
import math
import time
repeat=True
numbers = ["1","2","3","4","5"]
gamestart=False
gamecontinue=True
def guess():
chosennumber=random.choice(numbers)
guessnumber=raw_input(">Guess the number I chose between 0 and 6:")
if guessnumber==chosennumber and guessnumber in numbers:
print ">Congratulations, I chose %d too!" % (int(chosennumber))
print
elif guessnumber!=chosennumber:
print "That is not right."
print "I chose %d." % (int(chosennumber))
print
elif not guessnumber in numbers:
while not guessnumber in numbers:
guessnumber=raw_input(">Please enter a number between 0 and 6:")
if raw_input(">Do you want to play guessing game? Y or N:") == "Y":
gamestart=True
else:
print "Okay, I will play myself."
time.sleep(2)
print "Bye :("
while gamestart==True and gamecontinue==True:
guess()
if raw_input (">Do you want to play again? Y or N:") == "N":
gamecontinue=False
print "Okay, I will play myself."
time.sleep(2)
print "Bye :("
问题是,如果您放置两个
elif
语句,那么第一个语句将首先进行。你知道吗将首先询问此条件。但是如果你再看一遍,不管输入(guessnumber)是否在列表中,它都会继续。因此,如果我们希望它成为一个条件,即我们输入一个在列表中但与所选数字不匹配的数字,我们将向elif语句添加另一个条件。你知道吗
代码是这样的
有点细节,但我想应该记住。你知道吗
那就行了 它检查所选号码是否在列表中
所以你发现了问题所在,很好!但我还有一个建议给你,一个更好的方法来实现这一点是检查输入是否正确,如果它是正确的,你继续,如果它不是,你要求再次在那里:
现在您确定输入是正确的,所以只需检查:
相关问题 更多 >
编程相关推荐