Python作为程序语言中的新星,是因为语法的简单、内置函数得多以及海量的第三方库。但是,今天介绍的是一些关于Python的else语句的冷知识,你确定不来看看吗?
下面我们来看一个关键字:
else
提问:这个else关键字该和那个关键字配对?不了解的肯定会说if和elif,但是你们不知道吧,else还可以跟try和except、for还有while进行配对!但是,在不同的地方表示不同的意思,下面将为四种情况的不同意思进行讲解。
1.
import datetime
if datetime.datetime.now() == datetime.datetime(2023,1,1,0,0,0):
print("新年好")
else:
print("距离新年还有:",datetime.datetime(2023,1,1,0,0,0) - datetime.datetime.now())
这里的else指的是如果if后面的表达式为假,则执行else代码块。(这里大家肯定都知道,简单过一下)
2.
try:
n = int(input())
m = int(input())
rst = n / m
except ZeroDivisionError:
rst = "发生错误,除数为0"
except ValueError:
rst = "发生错误,被除数或除数不为数字字符串"
else:
print("无错误发生")
这里的else指的是如果try语句成功执行完毕,那么执行else语句,这个语法非常有用,比如说我们想要获取用户的正确格式输入,就得用上else语句啦。
而且,我们可以在else后面继续加上finally语句,finally语句指的是无论try语句成功执行是否,都会在语句的最后执行此代码块。就像这样:
try:
n = int(input())
m = int(input())
rst = n / m
except ZeroDivisionError:
rst = "发生错误,除数为0"
except ValueError:
rst = "发生错误,被除数或除数不为数字字符串"
else:
print("无错误发生")
finally:
print(rst)
如果我们把print(rst)放在else语句下,那意思就变了。指的就是如果计算成功,则打印出计算结果。
这一个语句的流程图如下:
这样一看,是不是就简单清晰了?
3.
import random
for i in range(10):
if random.randint(0,10) == i:
break
else:
continue # 其实这里不用写else,但是为了让读者更加清晰,还是加了else
else:
print("没有中奖")
这里的else指的是如果for循环成功执行完毕的话,则执行else语句。如果在循环中出现了break语句的情况,则不执行else语句。这个语句本人经常用的到。
4.
i = 10
sums = []
while i:
a = input()
if not a.isdigit():
break
sums.append(int(a))
else:
print(sum(sums)/10)
while else的用法同for else。