python:if语句和多个变量值

时间:2016-01-08 14:09:04

标签: python if-statement

早上好,

我的问题如下:

if variable == 'string1':
  do_stuff
elif variable == 'string2' or 'string3':
  do_stuff2

它不能正常工作:做" stuff2"当变量等于" string2"或" string3"。

要做到这一点,我必须改为以下代码:

if variable == 'string1':
  do_stuff
elif variable == 'string2' or variable == 'string3':
  do_stuff2

此代码工作正常:当变量等于" string2"或" string3",代码可以填充stuff2。

我不明白有什么区别: elif variable == 'string2' or variable == 'string3'elif variable == 'string2' or 'string3'

python在第二个版本中理解了什么?

感谢您的帮助,

帕多

2 个答案:

答案 0 :(得分:0)

这有助于您理解:

>>> x = 'Test'
>>> 
>>> x == 'Test1' or 'Test2'
'Test2' #Expression evaluated to value of 'Test2' as first was False
>>>
>>> x == 'Test1' or 'Test'
'Test' #Expression evaluated to value of 'Test' as first was False
>>>
>>> x == 'Test' or 'Test1'
True #Expression evaluated to True as x is truly 'Test'
>>>
>>> x == 'Test1' or x == 'Test'
True #Expression evaluated to True as second expression was True

答案 1 :(得分:0)

在REPL中尝试。

>>> "one" or "two"
'one'

这是短路或'。它返回第一个非False值。

'或'的含义运营商是"是一个或另一个价值真相?"。返回第一个真值的短路功能是奖励功能。

所以你的陈述

elif variable == 'string2' or 'string3':

实际上意味着

elif variable == 'string2':