如何从输入中获取布尔值?

时间:2019-08-26 19:17:25

标签: python boolean

我想向用户询问是非题,并从中获取布尔值,但是我不太了解.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.")

6 个答案:

答案 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.")