为许多条件分配变量(真/假)

时间:2017-11-01 06:22:06

标签: python conditional-statements

我正在进行Grok学习课程,并遇到了一个问题。对不起,如果我做得不好;不是编码的专业人士:

我正在尝试根据许多条件制作一个真/假的变量:

所以,

    x = True  if  y > 2 , g < 4 , n != 3 

我尝试过不同的方法:

为我的每个条件分配变量:

    if y > 2:
       ytrue = True  

等。 但是,我想找到一种比这更好的方法,这是漫长而乏味的。 谢谢。

4 个答案:

答案 0 :(得分:3)

它就像

一样简单
x = y > 2 and g < 4 and n != 3 

如果所有三个条件都成立,则评估为True,否则为False

由于您不熟悉编程,所以请阅读以下内容。

首先评估右侧是

y > 2 and g < 4 and n != 3

这是从左到右评估的。首先,它评估y > 2TrueFalse。如果False整个右侧为False,则False将分配给x。否则,它继续评估右侧的所有其他子表达式,直到其中一个为False或者直到您发现每个子表达式为True,在这种情况下整个右边是True

无论是True还是False,您的变量x都会获得所需的值。

答案 1 :(得分:0)

x = y > 2 and g < 4 and n != 3 

如果您有多个表达式,并且想要使用和&amp;&amp ;;或者它的组合最好像这样把它放在

 x= ((y > 2 and g < 4) or n != 3)

答案 2 :(得分:0)

像(&gt;,&lt;,!=等)这样的比较运算符最终都被python解释器评估为True或False。

Python也有布尔运算符和,或者不是(Read more in Section 4.2 of the python docs)但你可以将它们与比较运算符结合使用来链接它们。所以你的任务变成了:

x =  y > 2 and g < 4 and n != 3 

答案 3 :(得分:0)

您可以使用三元条件运算符:

['false','true'][y > 2 and g < 4 and n != 3]

它如何运作?

True == 1, False == 0

因为布尔值是int的子类,所以[y > 2 and g < 4 and n != 3]生成一个整数值,但['false','true']将其作为索引值。

True gives ['false','true'][1]
And False gives ['false','true'][0]

测试用例:

y=4
g=1
n=3
print(['false','true'][y > 2 and g < 4 and n != 3])

输出:

false

测试案例2:

y=4
g=1
n=1
print(['false','true'][y > 2 and g < 4 and n != 3])

输出:

true

现在,如果您愿意,可以将结果存储在变量中:

x=['false','true'][y > 2 and g < 4 and n != 3]

你想我想。