如何使用if,elif和else语句?

时间:2020-05-06 07:21:48

标签: python if-statement

我是编程的初学者(仅9天)。

我最近了解了if,else语句。 但是我在应用它时遇到了一个问题。

使用代码时

    y=input('ans>>')
    if y=='c':
        q=5
    elif y=='a'or'b'or'd':
        q=-1
    else:
        q=0
    print(q)

当我输入c时,它会给我5,当我输入a时,它会给我-1,但

当我只输入a,b,c,d时,每次仍然给我-1,但应该输入0

我该如何解决?

3 个答案:

答案 0 :(得分:1)

y=input('ans>>')
if y=='c':
    q=5
elif y in ['a', 'b', 'd']: //similar to y=='a' or y=='b' or y=='d'
    q=-1
else:
    q=0
print(q)

答案 1 :(得分:1)

问题出在elif状态。 or的评估顺序与您预期的不同。 Python将其读取为:

((y == 'a') or 'b') or 'd')

如果y == 'a'False,则其求值为(False or 'b') or 'd'False or 'b'的计算结果为'b',最后'b' or 'd'的计算结果为'b',它不为零或None,因此elif会将其视为是True

根据其他人的建议,写:

elif y == 'a' or y == 'b' or y == 'd':

或写:

elif y in ['a', 'b', 'd']:

答案 2 :(得分:1)

我可能建议您学习布尔类型及其操作,例如“或”,“和”。 简而言之-您必须在比较的逻辑表达式上使用“ and”和“ or”进行操作:

y =='a'

y =='b'

y =='d'

所有这三个应该是产生True或False的不同比较 然后您可以测试逻辑“或”和“与”的结果。 ''' 如果y =='a'或y =='b'或y =='d':

请记住,对布尔值进行逻辑运算会产生以下结果:

True或False为True

对与错就是错

假和假就是假

假或假是假

我希望这会有所帮助

相关问题