首页 > 解决方案 > 如何从输入中获取布尔值?

问题描述

我想问用户一个真/假问题并从中获得一个布尔值,但我真的不明白它是如何.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.")

标签: pythonboolean

解决方案


用于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.")

推荐阅读