J.S*_*JJJ 4 python if-statement
例如.
据一些专家介绍,
这里的条件是互斥的:
if(n>0):
print "Number is Positive"
if(n<0):
print "Number is Negative"
if(n==0):
print "Number is ZERO"
Run Code Online (Sandbox Code Playgroud)
用elif和其他方法重写会更好:
if n > 0:
print "Number is Positive"
elif n < 0:
print "Number is Negative"
else:
print "Number is ZERO"
Run Code Online (Sandbox Code Playgroud)
所以我只想问一个问题,'if'和'elif'之间有什么区别吗?我知道'if'和'elif'之间的基本区别.但我只是想知道,为什么一些新手程序员喜欢'elif'而不是'if'?
Ósc*_*pez 16
第一种形式if-if-if测试所有条件,而第二种形式if-elif-else只测试所需的条件:如果它找到一个条件True,它会停止并且不会评估其余条件.换句话说:if-elif-else在条件互斥时使用.
我们来写一个例子.如果你想确定三个数字之间的最大值,我们可以测试一个是否大于或等于其他值,直到我们找到最大值 - 但是一旦找到该值,就没有必要测试其他值:
greatest = None
if a >= b and a >= c:
greatest = a
elif b >= a and b >= c:
greatest = b
else:
greatest = c
print greatest
Run Code Online (Sandbox Code Playgroud)
或者,我们可以假设一个初始值为最大值,并依次测试其他每个值以查看假设是否成立,根据需要更新假定值:
greatest = None
if a > greatest:
greatest = a
if b > greatest:
greatest = b
if c > greatest:
greatest = c
print greatest
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,if-if-if并且if-elif-else是有用的,这取决于你需要做什么.特别是,我的第二个例子更有用,因为将条件置于循环中很容易 - 所以我们有多少个数并不重要,而在第一个例子中我们需要写很多每个附加数字的手工条件.
cor*_*vid 10
你可以连续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')
Run Code Online (Sandbox Code Playgroud)
这会印刷
divisible by 2
Run Code Online (Sandbox Code Playgroud)
但是,假设您将elif上面的内容替换为if并删除该else条款......
divisible by 2
divisible by 3
Run Code Online (Sandbox Code Playgroud)
该elif链条的陈述,并选择适当的第一个.
| 归档时间: |
|
| 查看次数: |
22852 次 |
| 最近记录: |