如何检查多个返回值

use*_*103 1 python

我试着检查是否有任何值"GIN"或"NOT READY"或"要放弃或需要RESUBMISSION"等于retrunVal,我注意到对于任何returnVal,"if"循环"正在"并且"INSIDE"正在获得打印,我怀疑语法不对,任何人都可以提供输入吗?

    if ('GIN'  or 'NOT READY' or 'TO BE ABANDON OR NEEDS RESUBMISSION' == returnVal):
        print "INSIDE"
Run Code Online (Sandbox Code Playgroud)

Ósc*_*pez 8

像这样:

if returnValue in ('GIN', 'NOT READY', 'TO BE ABANDON OR NEEDS RESUBMISSION'):
    print 'INSIDE'
Run Code Online (Sandbox Code Playgroud)

这是标准习惯用法 - 使用in运算符测试具有所有可能值的元组中的成员资格.比一堆or'ed contitions 还要清洁得多.


Sam*_*zzo 6

从逻辑上讲,您的代码如下所示:

if 'GIN' exists
or if 'NOT READY' exists
or if 'TO BE ABANDON OR NEEDS RESUBMISSION' is equal to retVal
   do something
Run Code Online (Sandbox Code Playgroud)

阅读此链接有关python中的真值(这也与paxdiablo的答案有关).

更好的方法是使用python的"in"语句:

if retVal in ['GIN', 'NOT READY', 'TO BE ABANDON OR NEEDS RESUBMISSION']:
   do something
Run Code Online (Sandbox Code Playgroud)