Python中数字的处理

Gar*_* Hu 2 python

伙计们。我是 Python 新手,我有一个关于用这种语言处理数字的简单问题,但我无法弄清楚。这是我试图构建的猜词游戏。

answer = "SOPHIA"
guess = ""
attempt = 3


guess = input("TYPE YOUR ANSWER: ")

while guess != answer and attempt > 1 :
    attempt = attempt - 1
    print("WRONG ANSWER. ATTEMPT REMAINING: " + str(attempt))
    guess = input("TYPE YOUR ANSWER AGAIN: ")

if attempt == 0:
    print("NO MORE ATTEMPT REMAINING.")
else:
    print("CORRECT ANSWER.")
Run Code Online (Sandbox Code Playgroud)

当我执行上面的代码时,结果是

TYPE YOUR ANSWER: Leon
WRONG ANSWER. ATTEMPT REMAINING: 2
TYPE YOUR ANSWER AGAIN: Raphael
WRONG ANSWER. ATTEMPT REMAINING: 1
TYPE YOUR ANSWER AGAIN: Michael
CORRECT ANSWER.
Run Code Online (Sandbox Code Playgroud)

我试图在 int() 中包含数字,但得到了相同的结果。

在给出了 3 次错误的答案后,我应该得到“NO MORE ATTEMPT REMAINING”。当我得到“正确答案”时。我是否误解了 Python 中数字的工作原理。我知道答案应该很简单,但我仍然无法理解。谁能告诉我我哪里错了?

谢谢你们。

nev*_*ner 7

您应该将循环条件更改为:

while guess != answer and attempt > 0:
Run Code Online (Sandbox Code Playgroud)

在您之前的版本中

while guess != answer and attempt > 1:
Run Code Online (Sandbox Code Playgroud)

你在什么时候停止循环attempt=1,这就是为什么这个条件if attempt == 0:永远不会成立。