Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用';和';仅当变量设置为“时才使用运算符”;“真的”;_Python - Fatal编程技术网

Python 如何使用';和';仅当变量设置为“时才使用运算符”;“真的”;

Python 如何使用';和';仅当变量设置为“时才使用运算符”;“真的”;,python,Python,仅当使用ivr=为真时,如何使用和运算符 ivr = 30 use_ivr = True if 1 == 1 and 2 == 2 and ivr > 30: print('yes') 因此,如果使用_ivr=False,则应按如下方式执行: if 1 == 1 and 2 == 2: print('yes') 使用嵌套的if语句检查Use_ivr是否为true: ivr = 31 use_ivr = True if use_ivr: if 1 == 1 a

仅当
使用ivr
=
为真时,如何使用
运算符

ivr = 30
use_ivr = True

if 1 == 1 and 2 == 2 and ivr > 30:
    print('yes')
因此,如果
使用_ivr
=
False
,则应按如下方式执行:

if 1 == 1 and 2 == 2:
    print('yes')

使用嵌套的if语句检查Use_ivr是否为true:

ivr = 31
use_ivr = True

if use_ivr:
    if 1 == 1 and 2 == 2 and ivr > 30:
        print('yes')
else:
    if 1 == 1 and 2 == 2:
        print('no ivr was used');

在python中,
的第二部分仅在第一部分为true时执行。
您可以使用未定义的veriable


>>如果在实践中为False和x#,这与上面的许多答案类似

ivr=31
使用_ivr=True
ivr_条件=ivr>30,如果use_ivr else True
如果(1==1)和(2==2)以及ivr_条件:
打印('是')
此解决方案选择将ivr条件压缩为单个三元语句。您可以将这种方法内联到一行较长的代码中,尽管我个人认为一行较长的代码更难解析。

您可以使用以下方法:

ivr = 30
use_ivr = True

if all([1 == 1, 2 == 2, ivr > 30, use_ivr]):
    print('yes')

if all([1 == 1, 2 == 2, not use_ivr]):
    print('yes')
all()
如果iterable中的所有元素

传递到括号中的值为true(或者如果iterable为空),否则返回
False


更新:

虽然我的第一个代码运行良好,但它计算
1==1,2==2
两次。以下是更新版本:

ivr = 30
use_ivr = True

a = [1 == 1, 2 == 2, ivr > 30, use_ivr]

if all(a):
    print('yes')

if all(a[:2]+[not use_ivr]):
    print('yes')

您想在哪里使用操作员?在if语句本身中?你想要得到什么结果?
1==1和2==2
总是正确的。这是否代表了什么?为什么要使用
elif
而不仅仅是
else
elif不使用ivr
是多余的。改用
else
。@wjandrea ninja'd;)我觉得用elif更容易理解,但你们绝对正确。我相应地调整了我的答案。。。。是的,这比我最初的评论更有意义:
如果1==1和2==2和((不使用ivr)或ivr>30):
…这种方法的一个缺点是
1==1
2==2
得到两次计算——每个条件一次。这里没有问题,但是在使用这个解决方案之前要考虑一些问题。