我正在进行Grok学习课程,并遇到了一个问题。对不起,如果我做得不好;不是编码的专业人士:
我正在尝试根据许多条件制作一个真/假的变量:
所以,
x = True if y > 2 , g < 4 , n != 3
我尝试过不同的方法:
为我的每个条件分配变量:
if y > 2:
ytrue = True
等。 但是,我想找到一种比这更好的方法,这是漫长而乏味的。 谢谢。
答案 0 :(得分:3)
它就像
一样简单x = y > 2 and g < 4 and n != 3
如果所有三个条件都成立,则评估为True
,否则为False
。
由于您不熟悉编程,所以请阅读以下内容。
首先评估右侧是
y > 2 and g < 4 and n != 3
这是从左到右评估的。首先,它评估y > 2
,True
或False
。如果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]
你想我想。