例如......
据一些专家介绍,
这里的条件是相互排斥的:
if(n>0):
print "Number is Positive"
if(n<0):
print "Number is Negative"
if(n==0):
print "Number is ZERO"
用elif和其他方式重写会更好:
if n > 0:
print "Number is Positive"
elif n < 0:
print "Number is Negative"
else:
print "Number is ZERO"
所以我只想问一个问题,&#39;之间是否存在差异?如果&#39; 和&#39; elif&#39; 。我知道&#39;之间的基本区别。如果&#39;和&#39; elif&#39;。但我只是想知道,为什么一些新手程序员更喜欢&#39; elif&#39;过去&#39;如果&#39;?
答案 0 :(得分:15)
第一种形式if-if-if
测试所有条件,而第二种if-elif-else
只测试所需数量:如果找到一个True
条件,它停止并且不评估其余部分。换句话说:当条件互斥时使用if-elif-else
。
让我们写一个例子。如果你想确定三个数字之间的最大值,我们可以测试一个是否大于或等于其他值,直到我们找到最大值 - 但是一旦找到该值,就没有必要测试其他值: / p>
greatest = None
if a >= b and a >= c:
greatest = a
elif b >= a and b >= c:
greatest = b
else:
greatest = c
print greatest
或者,我们可以假设一个初始值为最大值,并依次测试其他每个值,看看假设是否成立,根据需要更新假设值:
greatest = None
if a > greatest:
greatest = a
if b > greatest:
greatest = b
if c > greatest:
greatest = c
print greatest
正如您所看到的,if-if-if
和if-elif-else
都很有用,具体取决于您需要做什么。特别是,我的第二个例子更有用,因为它很容易将条件置于一个循环中 - 所以它与我们有多少数字并不重要,而在第一个例子中我们&#39 ; d需要为每个额外的数字手动编写许多条件。
答案 1 :(得分:9)
如果链条中没有任何条件得到满足,您可以将if
与elif
链接,并以else
结束。检查语句时,它会找到第一个匹配的语句并执行该块中的指令,然后从if / elif / else块中断
n = 6
if n % 2 == 0:
print('divisible by 2')
elif n % 3 == 0:
print('divisible by 3')
else:
print('not divisible by two or three')
这会打印
divisible by 2
但是,假设您使用elif
替换上面的if
并删除else
条款......
divisible by 2
divisible by 3
elif
将语句链接起来并选择第一个合适的语句。