似乎无法弄清楚我的 python 代码有什么问题

时间:2021-01-22 08:22:22

标签: python debugging

[Python script][1]

似乎无法弄清楚我在这里做错了什么,由于某种原因似乎无法显示我的所有结果。这个想法是在猜测等于 0 时停止要求用户输入,但是当我尝试使用代码尝试修复它时,它给了我其他错误:(

https://i.stack.imgur.com/c6GCH.png

3 个答案:

答案 0 :(得分:2)

在你做的地方

guesses - 1

您将 guesses 的值减 1,但并未将结果分配给变量。您需要做的是:

guesses = guesses - 1

还有 a shorter way 来写同样的东西:

guesses  -= 1

答案 1 :(得分:0)

变量减 1,但不保存新值。所以,正如@BioGeek 的回答,你必须更新你的变量。

答案 2 :(得分:0)

你把整件事都做错了“萌”。你写了

if guesses <= 2

这意味着即使猜测超过 -100 万或类似的数字,它也会继续下去,因为它少于 2。

guesses = 2
def ask():
  ans = input("Enter the guess: ")
  if ans == "Booga":
    print("Correct")
    return True
  else:
      global guesses
      print("Incorrect")
      guesses = guesses - 1
      return False
while guesses != 0:
 n = ask()
 if n == True:
    break
 else:
    pass

这是一个工作示例,您的代码非常错误,您的函数已经询问了两次,这使得 guesses 变量无用,另外,使用 global 关键字以便您可以访问 guesses 变量,您还需要构造 if以更好的方式陈述。我不知道当前的结构是否有效,因为它不是文本形式。检查猜测不为零,结束代码,如:

if guesses != 0:
     #Do your thing
    g = input("Guess: ")
     if g == "Booga":
        #Success
    else:
         #Do your thing accordingly
else:
    print("Game over")