Python 如何在此代码中定义布尔变量?
您好,我最近开始学习python3,在我正在学习的课程中,它要求我使用bool变量执行if-else语句Python 如何在此代码中定义布尔变量?,python,Python,您好,我最近开始学习python3,在我正在学习的课程中,它要求我使用bool变量执行if-else语句 我已经编写了我的代码,并检查了代码所需的所有标准,但它一直说我应该定义一个布尔变量,而我一辈子都无法弄清楚它想要我做什么 这是我的密码: rain = bool(input('is it raining outside?: ').lower()) if rain == "Yes": print("I'm going to dance in the rain!
我已经编写了我的代码,并检查了代码所需的所有标准,但它一直说我应该定义一个布尔变量,而我一辈子都无法弄清楚它想要我做什么 这是我的密码:
rain = bool(input('is it raining outside?: ').lower())
if rain == "Yes":
print("I'm going to dance in the rain!")
else:
print ("I'm going to dance in the sun!")
我对此做了一个小修改:
rain = input('is it raining outside?: ')
if rain.lower() == "yes":
print("I'm going to dance in the rain!")
else:
print ("I'm going to dance in the sun!")
您不需要声明为bool。只需将答案放低一点,并用“是”语句进行检查。像这样,无论是“是”还是“是”,它都会起作用 将输入转换为布尔值,然后与字符串进行比较
rain
应在赋值时进行比较,以获得布尔值:
rain = input('is it raining outside?: ').lower() == "yes"
if rain:
...
rain = input('is it raining outside?: ').lower()
if rain == "yes":
...
或rain
不应为布尔值:
rain = input('is it raining outside?: ').lower() == "yes"
if rain:
...
rain = input('is it raining outside?: ').lower()
if rain == "yes":
...
这不起作用,因为: 在Python中,
bool(…)
为所有非空字符串返回True
。例如:
>bool(“”)
假的
>>>bool(“foo”)
真的
>>>布尔(“是”)
真的
>>>布尔(“否”)
真的
>>>布尔(“假”)
真的
要解决此问题,您可以
str\u bool
函数,例如def str_bool(s):
如果s.lower()在[“y”、“yes”、“yes”、“true”、“positive”、“1”]中:
返回真值
elif s.lower()在[“n”、“no”、“nope”、“false”、“negative”、“0”]中:
返回错误
其他:
raise VALUERROR(“字符串%s不可bool”%s)
rain
变量:rain=input(‘外面在下雨吗?:’).lower()在[“是”、“是”、“是”、“正”、“1”]
如果下雨:
打印(“我要在雨中跳舞!”)
其他:
打印(“我要在阳光下跳舞!”)
第二个当然不能处理用户输入
可能的情况-第一个显然更好更干净 提示:rain==“Yes”
是一个布尔值。第二个提示-rain
永远不会等于“Yes”。。。你在它的内容上做了一个.lower()
“它一直说我应该定义一个布尔变量”这是什么意思?是它吗。显然存在一些未知的需求,除非已知这些需求,否则任何答案都是猜测。关闭它,直到它形成要回答的形状,这似乎与要做的事情完全一样。==“yes”
已经返回一个bool
,bool()
,这是不必要的。是。你是对的。忘了移除。我会编辑。如果用户回答“可能”怎么办?说真的,我并没有投你反对票,但这并不能回答问题,因为在某些变量中存储实际的布尔值显然有一些要求。请仔细阅读问题@MisterMiyagi从表面上看很容易看出,在OP的if
语句尝试的情况下,布尔变量没有被使用。虽然有一点周而复始,但这个答案满足了这一要求如果rain:
其中rain
是一个布尔变量,则是正确的答案。@jnevil由于Python本身不发出该错误,因此不清楚检查代码的工具需要什么。问题已经定义了一个布尔变量,这显然是不够的。