在eli中的列表中循环值

2024-04-26 18:10:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着让elif工作,我试过各种各样的方法,现在有点疯了。你知道吗

基本上,如果guessed不等于randomwordslist中的条目,那么它应该声明它,而不是减少猜测,也不转到else语句。你知道吗

错误为“NameError:未定义名称'word'”

我做错了吗?你知道吗

while guess > 0:
    guessed = input("Guess ({} attempts left):".format(guess))
    guess = guess -1
    if guessed == answer:
        print("+++++  You have won  ++++++")
        break

    elif guessed != word in randomwordslist:
        print("Only words from above count as valid entries")
        continue

    else:
        match = 0
        for i in range(len(guessed)):
            if guessed[i].lower() == answer[i].lower():
                match += 1

Tags: 方法answerin声明ifmatch条目lower
2条回答

您要求Python测试两件事:

guessed != word and word in randomwordslist

因为Python比较是链式的。但是您没有定义word,这就是为什么会出现异常。你知道吗

只要测试guessed是否不在randomwordslist

if guessed not in randomwordslist:

如果要验证字符串是否不是列表的一部分。not inin相反,后者测试值是否是第二个操作数的成员。你知道吗

如果您不希望猜测的次数受到影响,请将测试向上移动,以便首先进行检查:

while guess > 0:
    guessed = input("Guess ({} attempts left):".format(guess))

    if guessed not in randomwordslist:
        print("Only words from above count as valid entries")
        continue

    # valid guess, so it counts.
    guess = guess - 1

    if guessed == answer:
        print("+++++  You have won  ++++++")
        break

elif块替换为以下块:

elif guessed not in randomwordslist:
    print("Only words from above count as valid entries")
    continue

相关问题 更多 >