社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python中数字的处理

Gary Hu • 5 年前 • 1606 次点击  

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.")

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

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.

三次答错后,我应该得到“再也没有尝试了”,而我得到的是“正确的答案”。我是否误解了Python中数字的工作原理。我知道答案应该很简单,但我还是搞不懂。有人能告诉我哪里错了吗?

谢谢你们,伙计们。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53998
 
1606 次点击  
文章 [ 4 ]  |  最新文章 5 年前
yourFriendlyNeighbor
Reply   •   1 楼
yourFriendlyNeighbor    5 年前
TYPE YOUR ANSWER: ken
WRONG ANSWER. ATTEMPT REMAINING: 2
TYPE YOUR ANSWER AGAIN: seth
WRONG ANSWER. ATTEMPT REMAINING: 1
TYPE YOUR ANSWER AGAIN: cue
1
CORRECT ANSWER.

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

while attempt > 0 :
    guess = input("TYPE YOUR ANSWER: ")
    if guess == answer:
        break
    attempt = attempt - 1
    print("WRONG ANSWER. ATTEMPT REMAINING: ")


if attempt == 0:
    print("NO MORE ATTEMPT REMAINING.")
else:
    print("CORRECT ANSWER.")

这样,就可以得到所需的迭代次数。否则,如果将条件更改为:

while guess != answer and attempt > 0:

TYPE YOUR ANSWER: ken
WRONG ANSWER. ATTEMPT REMAINING: 
TYPE YOUR ANSWER: brian
WRONG ANSWER. ATTEMPT REMAINING: 
TYPE YOUR ANSWER: abdul
WRONG ANSWER. ATTEMPT REMAINING:
TYPE YOUR ANSWER: SOPHIA
WRONG ANSWER. ATTEMPT REMAINING:
NO MORE ATTEMPT REMAINING.
Vishal
Reply   •   2 楼
Vishal    5 年前

猜猜看!=回答并尝试>0:

user9113784
Reply   •   3 楼
user9113784    5 年前

使用这个:

while guess != answer and attempt >= 1

实际上,在第三次错误回答的情况下,您的代码没有将尝试变量更改为0,尝试变量保持为1,因此正在执行else块

user9113784
Reply   •   4 楼
user9113784    5 年前

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

while guess != answer and attempt > 0:

while guess != answer and attempt => 1:

在你以前的版本中

while guess != answer and attempt > 1:

attempt=1 这就是为什么这种情况 if attempt == 0: 从来不是真的。