如何制作,以便用户可以输入不同的答案,但显示相同的结果?

时间:2015-07-30 00:53:36

标签: python python-3.x

我想知道如果用户在输入命令中输入两个特定答案(即'结束'和'结束'),我将如何显示相同的结果。

这是我到目前为止的代码;一切都在工作,除了“结束”部分:

def password(): #defines password
print("Please input your password.")
pass2 = input("Password: ")
if pass2 == ("abcd123"):
    print("Thank you for using Efficient Systems, Co.")
    end = input("Type end to exit: ")
    while True:
        if end == ("end") and ("End"):
            break
        else:
            print("Invalid command.")
            end = input("Type end to exit: ")
else:
    print("Invalid command.")
    time.sleep(1)
    pass2 = input("Password: ")

我认为值得注意的是,如果我输入'end',它会回到pass2。

2 个答案:

答案 0 :(得分:4)

条件错误 -

if end == ("end") and ("End"):

这只会评估为true(当结束为'end'时),因为这会被翻译为 -

if ((end == "end") and "End")

python中的任何非空字符串都是True-like(在布尔上下文中具有true值。)

要检查所有情况,最好的办法是检查变量的.lower()'end',例如 -

if end is not None and end.lower() == "end":

由于你使用input()函数进行输入,实际上你不需要is not None部分,所以你可以这样做 -

if end.lower() == "end":

答案 1 :(得分:0)

您需要使用if end == "end" or end == "End": ....

if end.casefold() == "end":
    ...

如果要检查字符串不区分大小写,请使用str.casefold

<div class="widget span8">
        <div class="widget-header">
          <i class="icon-map-marker"></i>
          <h5>Map Visualization</h5>
          <div class="widget-buttons">
          </div>
        </div>
        <div class="widget-body clearfix">
          <div style="height:274px;" id="graph" class="widget-analytics-large"></div>
        </div>
      </div>
    </div>