python 中 else 的用法

1、 if … else …

if ... elif ... else ... 形式与 if ... else ... 在用法是没有区别的。

a = 10
b = 20
if a > b:
    print('%s > %s' % (a, b))
else:
    print('%s <= %s' % (a, b))

运行结果:

10 <= 20

2、 while … else …

1)执行 else 的情况

n = 8
while n<10:
    if n % 5 == 0:
        print('000')
        break
    print('111')
    n += 1

else:
    print('-- else --')

说明:
if 块中的内容没有执行,while 循环就结束了。

运行结果:

111
111
-- else --

2)不执行 else 的情况

n<10 改成 n<15

n = 8
while n<15:
    if n % 5 == 0:
        print('000')
        break
    print('111')
    n += 1

else:
    print('-- else --')

说明:
因为执行 if 块中的内容,并执行 break ,所以 else 不执行。

运行结果:

111
111
111
000

如果将上述代码中的break去掉,则 else 语句 将会被执行.

3、 try … except … else …

该形式与 try ... except ... else ... finally ... 只有唯一的区别:finally 语句体总是会被执行.

1)执行 else 的情况

try:
    print('normal')
except:
    print('error')
else:
    print('else')

运行结果:

normal
else

2)不执行 else 的情况

try:
    print(1/0)   
except:
    print('error')
else:
    print('else')

运行结果:

error

4、for … else …

1)执行 else 的情况

不含 break 的代码,

for i in range(10):
    if i % 5 == 0:
        print('normal')
        # break
else:
    print('else')

运行结果:

normal
normal
else

2)不执行 else 的情况

含有 break的代码

for i in range(10):
    if i % 5 == 0:
        print('normal')
        break
else:
    print('else')

运行结果:

normal

5、总结:

对于while ... else ...try ... except ... else ...for ... else ... 来说,当语句体中有 break 、return 或者异常发生则不会执行 else 语句体;其余情况下则会执行 else 语句体.

猜你喜欢

转载自blog.csdn.net/xiaojin21cen/article/details/107813164