我正在为一个学校项目在Python上做一个数字猜测游戏,遇到了两个我找不到解决方法的问题。我有两个问题,但决定张贴作为一个问题,以避免垃圾邮件堆栈溢出。你知道吗
我发现了一个巧妙的技巧,当有人不小心插入一个字母时,你可以要求游戏继续要求一个数字,而不是结束整个代码。你知道吗
while True:
try:
guess = int(input("Guess which number I am thinking of: "))
except ValueError:
guess = print("That's not a number, guess a NUMBER!")
continue
else:
break
我的游戏允许玩家在失败之前猜六次。我使用while循环来实现这一点,因此我如何将上述while true循环添加到我已经拥有的while循环中:
while GuessesTaken < 6:
GuessesTaken = GuessesTaken + 1;
GuessesLeft = 6 - GuessesTaken;
guess = input("Guess which number I am thinking of: ")
guess = int(guess)
if guess < hidden and GuessesLeft==0:
GuessesLeft=str(GuessesLeft)
print("Your guess is too low, you have " + GuessesLeft + " guesses left")
break
elif guess < hidden and GuessesLeft > 0:
GuessesLeft=str(GuessesLeft)
print("Your guess is too low, you have " + GuessesLeft + " guesses left")
elif guess > hidden and GuessesLeft==0:
GuessesLeft=str(GuessesLeft)
print("Your guess is too low, you have " + GuessesLeft + " guesses left")
break
elif guess > hidden and GuessesLeft > 0:
GuessesLeft=str(GuessesLeft)
print("Your guess is too low, you have " + GuessesLeft + " guesses left")
elif guess==hidden:
break
我不知道如何解决第一个问题,但为了解决第二个问题,我做了很多尝试。你知道吗
def main():
hidden = random.randint(1,100)
while GuessesTaken < 6:
GuessesTaken = GuessesTaken + 1;
GuessesLeft = 6 - GuessesTaken;
guess = input("Guess which number I am thinking of: ")
guess = int(guess)
if guess < hidden and GuessesLeft==0:
GuessesLeft=str(GuessesLeft)
print("Your guess is too low, you have " + GuessesLeft + " guesses left")
break
elif guess < hidden and GuessesLeft > 0:
GuessesLeft=str(GuessesLeft)
print("Your guess is too low, you have " + GuessesLeft + " guesses left")
elif guess > hidden and GuessesLeft==0:
GuessesLeft=str(GuessesLeft)
print("Your guess is too low, you have " + GuessesLeft + " guesses left")
break
elif guess > hidden and GuessesLeft > 0:
GuessesLeft=str(GuessesLeft)
print("Your guess is too low, you have " + GuessesLeft + " guesses left")
elif guess==hidden:
break
这个代码带有一个
NameError: name 'hidden' is not defined
但如果我加上
hidden = random.randint(1,100)
在这部分代码下面的顶部
score = 0
GuessesTaken = 0
currenttime = str(datetime.now())
currenttime = (
currenttime[0:19])
yesList =("yes", "sure", "yeah", "ye", "yea", "y", "fine", "okay", "ok", "yep")
在我走到比赛的这一步之前它一直有效
if guess!=hidden:
hidden=str(hidden)
print("Fail! The number I was thinking of was " + hidden)
restart=input("Would you like to play again?").lower()
if restart in yesList:
main()
代码停止工作。你知道吗
我最后尝试的是将while true循环添加到def main():如下所示
def main():
hidden = random.randint(1,100)
while GuessesTaken < 6:
GuessesTaken = GuessesTaken + 1;
GuessesLeft = 6 - GuessesTaken;
guess = input("Guess which number I am thinking of: ")
guess = int(guess)
if guess < hidden and GuessesLeft==0:
GuessesLeft=str(GuessesLeft)
print("Your guess is too low, you have " + GuessesLeft + " guesses left")
break
elif guess < hidden and GuessesLeft > 0:
GuessesLeft=str(GuessesLeft)
print("Your guess is too low, you have " + GuessesLeft + " guesses left")
elif guess > hidden and GuessesLeft==0:
GuessesLeft=str(GuessesLeft)
print("Your guess is too low, you have " + GuessesLeft + " guesses left")
break
elif guess > hidden and GuessesLeft > 0:
GuessesLeft=str(GuessesLeft)
print("Your guess is too low, you have " + GuessesLeft + " guesses left")
elif guess==hidden:
break
出现了另一个错误消息。你知道吗
NameError: name 'guess' is not defined
LIKE_THIS
,变量和函数拼写为like_this
,类拼写为LikeThis
。你知道吗var += 1
与var = var + 1
相同6
)是一个很好的迹象,表明应该将其移动到常量。它还可以让你很快改变这一点。你知道吗代码类似于:
我添加了一些代码,允许用户在显示提示时重播您自己也在这样做。你知道吗
相关问题 更多 >
编程相关推荐