首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:如何让if语句在for循环的末尾检查条件是否为真?

Python:如何让if语句在for循环的末尾检查条件是否为真?
EN

Stack Overflow用户
提问于 2022-08-28 23:50:35
回答 1查看 40关注 0票数 -1

具体来说,我正在执行UDEMY 100天编码中的hangman挑战。我似乎不知道如何通过达到"6“生命中的"0”来检查用户是否丢失了。当我使用此代码时,它会在for循环中的每个与猜测不匹配的实例中从“生命”中减去1:

代码语言:javascript
复制
    lives = 6    
    while not end_of_game:
    guess = input("Guess a letter: ").lower()
    for position in range(word_length):
        letter = chosen_word[position]
        if letter == guess:
            display[position] = letter
        elif letter != guess:
            lives -= 1
            if lives == 0:
                end_of_game = True
    print(f"{' '.join(display)}")
EN

回答 1

Stack Overflow用户

发布于 2022-08-29 00:43:26

我只是对你的代码做了些替身检查。在纠正缩进之后,我在您的代码中发现的主要问题是,即使找到了一个猜测的字母并更新了显示位置,您的"for“循环仍然会根据单词中的其余字母检查猜测的字母。这样,即使有一个很好的猜测,生命也会减少。

我认为您希望您的代码更类似于下面的代码片段:

代码语言:javascript
复制
lives = 6    
while not end_of_game:
    guess = input("Guess a letter: ").lower()
    found_letter = False                      # Additional test variable
    for position in range(word_length):
        letter = chosen_word[position]
        if letter == guess:
            display[position] = letter
            found_letter = True
    if found_letter == False:          # Do the test for good/bad guess here
        lives -= 1
        if lives == 0:
            end_of_game = True
            break
    print(f"{' '.join(display)}")

附加的真/假变量"found_letter“将指示是否应该减少生命计数,并且测试将在检查完整个单词的猜测字母后进行。

试试看。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73523049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档