2013-02-25 127 views
0

我想结合以下如果statments结合两个if语句

if "%s\n" % baseAU in out: 
     print "Match" 
     count = 1 

    if internaldep in pendinggerrits: 
     print "match" 
     count = 1 

我尝试以下,但有更简单的方法

if "%s\n" % baseAU in out and internaldep in pendinggerrits: 
     print "match" 
+0

究竟是什么“不容易”呢? – 2013-02-25 05:08:53

+1

顺便提一句,这两个版本* *不相等。第一个版本是逻辑逻辑,而第二个逻辑是逻辑逻辑。 – 2013-02-25 05:10:59

+0

你的两套陈述并不相同。你的前两个“if”陈述是独立的。在第二种情况下,您将“和”应用于这两个条件。 – Kavka 2013-02-25 05:13:05

回答

4

没有,没有一个“更简单的方法“在if声明中加入两个条件;你已经拥有的方式非常简洁。

(请注意,但是,合并版本不会做同样的事情,原来的版本。你想使用or而不是and了点。)

2

你的第二个说法是不等于第一二。 注意,如果满足2个块中的任何一个,则打印'匹配'。

但是在您的简洁版中,您使用的是and运算符,只有在它们两者都为真时,才会打印match

如果您打算做你2独立块做了什么,你需要使用OR

if "%s\n" % baseAU in out or internaldep in pendinggerrits: 
     print "match" 

,是的,这是对那些块相结合的干净和简单的方法。