我想向用户询问是非题,并从中获取布尔值,但是我不太了解.bool()
的工作方式。这更像是“我该怎么办?”而不是“出了什么问题?”。
例如,这就是我的代码:
question = input("Is the Earth flat? ")
if question.bool() is True:
print("You dumb.")
我知道这是不正确的,但是我不确定什么会起作用!
是什么使.bool()
记录为真还是假?
我认为这可能是我必须要做的,但似乎并不正确:
if question == "Yes" or "Yeah" or "Y" or "Duh".lower()
print("You dumb.")
答案 0 :(得分:2)
为此,请使用in
,而不要使用多个or
语句,因为它的正确形式可读性较低,效率较低。另外,sets
非常适合检查包容性。
question = input("Is the Earth flat? ")
if question.lower() in {"yes", "yeah", "y", "duh"}:
print("You dumb.")
您甚至可以创建自定义函数来提出问题并返回布尔结果
def ask_bool(question):
return input(question).lower() in {"yes", "yeah", "y", "duh"}
然后询问布尔值答案:
if ask_bool("Is the Earth flat? "):
print("You dumb.")
答案 1 :(得分:1)
使用False
element in list:
答案 2 :(得分:0)
对于第二个选项,这不起作用,因为python无法理解其他条件。以下是检查多个条件是否相等的正确方法
SignerCertificate Status Path
----------------- ------ ----
UnknownError example.exe
但是,这可能不是用很多术语做到这一点的最佳方法,最好将它们存储在列表中并进行迭代。
答案 3 :(得分:0)
我建议您使用list中的元素:在[]之间,您只需列出所有可以接受和处理的可能答案。
if question.lower() in ["Yes", "YES", "true", "TRUE"]:
print("You dumb!")
else:
print("You are not stupid!")
希望这会有所帮助。
答案 4 :(得分:0)
我有一个默认答案是的解决方案
ans = input("Your answer [Y/n]: ")
if ans.lower() == "n":
# nooooo
else:
# yessss
不过,您也应该看到这一点,https://stackoverflow.com/a/48817835/10362396
答案 5 :(得分:0)
question = input("Is the Earth flat? ")
if question.lower() == "Yes".lower() or question.lower() == "Yeah".lower():
print(question)
print("You dumb.")