为什么代码总是执行第一个if条件?

时间:2019-06-05 15:13:09

标签: python if-statement expression

我仍在尝试if,elif和else。我不明白,即使您没有选择蓝色作为自己喜欢的颜色,为什么也会执行第一个条件条件。

我尝试更改缩进,但总是遇到语法错误。

color = input("Whats your favorite color?\n")

if color == 'blue' or 'Blue':
    print("Blue is a great color")
    print(f"{color} is your favorite color")
elif color == 'yellow' or 'Yellow':
    print(f"{color} is your color")
    print("Yellow is awesome!")
else:
    print("Choose something")

当我输入随机字母(例如'sdfd')时,我应该得到“选择真实色彩”的结果,但我却得到了 蓝色是很棒的颜色 sdfd是您最喜欢的颜色

4 个答案:

答案 0 :(得分:2)

这是因为 DF = read_data(data_type='raw_data', region='global', plant='XXX', source='YYY', table='ZZZ', start_date=None, end_date=None) 就像if color == 'blue' or 'Blue':

并且if (color == 'blue') or ('Blue'):是一个非空字符串,其求值为'Blue'

您可以做True甚至更好:if color in ['Blue', 'blue']:

答案 1 :(得分:0)

您的测试条件有一个错误。代替data.table,您应该这样做:

if color == 'blue' or 'Blue':

这应该很好! (也不要忘记更改其他条件!) 最终结果应为:

if color == 'blue' or color == 'Blue':

答案 2 :(得分:0)

在此示例中,使用文本方法.lower()

可能会更容易
if color == 'blue' or 'Blue':

可以正确表示为:

if color.lower() == 'blue':

如果有人输入“ BLUE”或“ BLUE”,这也会捕获。

这将更易于阅读和调试。

答案 3 :(得分:0)

一般回答

对于Python中具有多个条件的if ... else语句,必须明确,清楚地说明每个条件。因此,使用您的if color == 'blue' or 'Blue'语句,您并没有清楚说明这两个条件。第一部分if colour == 'blue'很好,但是在或比较器之后,您必须完整说明下一个条件。

代码应如下所示: if color == 'blue' or color == 'Blue':

可能的改进:

您还可以通过将.upper()、. title()和其他各种代码合并到代码中来实现字符串处理,从而改善此问题。这将帮助您减少if ... else语句中条件的数量。