我仍在尝试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是您最喜欢的颜色
答案 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语句中条件的数量。