我想知道如果用户在输入命令中输入两个特定答案(即'结束'和'结束'),我将如何显示相同的结果。
这是我到目前为止的代码;一切都在工作,除了“结束”部分:
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。
答案 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>