【问题描述】W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
输入一串表示日期的字符串,然后将该字符串转换成datetime类的日期对象。W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
输入数据:W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
2021-10-02W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
输出结果:W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
2021-10-02W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【题前思考】W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
根据问题描述,填写表6-3-1。W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
表6-3-1 问题分析W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【解题思路】W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
首先获取字符串,然后通过字符串切片获取年、月、日基础数据,接着将它们转换为整型,最后创建datetime.date类对象。可能出现异常的地方是因为字符串不规则而无法获取基础数据。用try-except-else来处理异常。W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【程序代码】W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【代码分析】W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
①:从标准模块datetime中导入表示日期的date类。W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
②:创建自定义类MyDate。W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
③:使用@staticmethod修饰器,说明下面将定义一个静态方法。类或实例均可调用静态方法,即“对象名.静态方法”或“类名.静态方法”都可以正常调用。W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
④:定义静态方法str2date将字符串转化为日期对象。W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
⑤:将你认为有可能出错的代码写入try子句中。try块的作用是捕获异常,注意不要省略冒号。W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
⑥:将遇到异常的处理办法写入except子句中。Exception as e表示为捕获类型为Exception的异常并取别名e,方便我们访问这个异常,例如:print(e)。W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
⑦:如果没有异常出现,接下来还有需要执行的操作,就可以放入else子句中。return date(year,month,day)创建date类对象,并返回这个对象。至此MyDate类定义完成。W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【优化提升】W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Python 素有优雅的名声,其中多重赋值就是它既优雅又快速的体现。例如:W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
year=int(sdate[:4])W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
month=int(sdate[5:7])W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
day=int(sdate[8:10])W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
我们尝试将代码改写为:W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
year,month,day=int(sdate[:4]),int(sdate[5:7]),int(sdate[8:10])W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【技术全貌】W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。以下为简单的try…except…else的语法:W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
try:W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
语句W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
except异常类型1 as变量名1:W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
遇到异常类型1要执行的语句W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
…W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
except异常类型n as变量名n:W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
遇到异常类型n要执行的语句W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
else:W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
没有遇到上述异常要执行语句W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
finally:W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
总要执行的语句W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
try的执行过程是先执行try里面的代码,如果遇到异常,就会检测是否有某个except子句要捕获这个异常,如果找到则执行except子句中的语句;如果没有找到要捕获的异常则执行else子句中的语句。最后,无论是否捕获到异常都会执行finally子句中的语句。else和finally都是可选项。W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Python中提供了很多标准异类常用于标识程序中可能出现的异常,见表6-3-2。W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
表6-3-2 Python标准异常W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
续表W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
W98100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库