iF语句的求值不正确

2024-10-02 04:32:58 发布

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

gridSystem是一个字典,它的键是另一个包含操作和值的字典。我在action函数中遇到的问题是第二个if语句。如果action不等于字典a中的某个操作(看,Boots。。这些名字现在是占位符),它应该只是打印出“再试一次”。但出于某种原因,无论发生什么,它的计算结果总是正确的,当我在字典中键入一些不是动作的内容时,它会给我一个错误。有人能帮忙吗?谢谢。你知道吗

a = {"Look":1, "Boots":32}


gridSystem = {"One":a}



def action():
    while True:
        room = raw_input("choose a room ")
        if room in gridSystem.keys():
            action = raw_input("What do you want to do? ")
            actiontoString = ''.join([action])
            if action == actiontoString:
                continue_action = raw_input("You have selected to " + actiontoString)
                print gridSystem[room][action]
                break
            elif not action == actiontoString:
                print "Try again"
        else:
            raw_input("Not in the gridsystem. Press enter to try again")



action()

Tags: to函数ininputrawif字典action
1条回答
网友
1楼 · 发布于 2024-10-02 04:32:58

实际上,actiontoString = ''.join([action])将创建action(这是一个字符串)的精确副本,并将其保存到名为actiontoString(另一个字符串,完全相同)的引用中。总是True。你知道吗

您可能需要if action in gridSystem[room]:而不是当前的相等检查。用简单的else:替换elif...:。使用print "You have selected to", actiontoString而不是从用户那里获取不需要的输入。你知道吗

相关问题 更多 >

    热门问题