Python实验 您所在的位置:网站首页 python异常处理finally语句内发生错误 Python实验

Python实验

2024-07-05 20:27| 来源: 网络整理| 查看: 265

任务描述

本关任务:编写代码求列表内所有元素的和。

相关知识

为了完成本关任务,你需要了解什么是异常以及异常的处理方式。

异常

我们在编写代码时,难免会出现代码写错或者方法、参数使用错误的情况,在运行代码的时候,也有可能发生错误,发生的错误也就是我们所说的异常。下面我们列举几个常见的异常:

ImportError,无法引入模块或包,大部分是路径问题或名称错误;IOError,输入输出异常,大部分是无法打开文件;TypeError,传入对象类型与要求的不符合;NameError,使用一个还未被赋予对象的变量;ValueError,传入一个调用者不期望的值,即使值的类型是正确的;KeyError,尝试访问字典里不存在的键;SystemError,一般的解释器系统错误。

异常处理

考虑到程序的健壮与容错性,我们需要对潜在的异常进行处理,防止因异常而导致的程序崩溃。最常用的的异常处理方式就是使用 try…except… 语句。

try: 代码块1 except: 代码块2

当执行代码块 1 发生错误时,停止运行代码块 1,开始运行代码块 2。except 后也可以指定异常类型。

try: num = "1" + 1 # 会发生TypeError错误 print(num) except TypeError: # 只有发生TypeError时才运行except子句 print("发生TypeError错误") try: num = 10 * (1/0) # 不会发生TypeError错误 print(num) except TypeError: print("发生TypeError错误")

执行结果:

发生TypeError错误 Traceback (most recent call last): File "sync_file.py", line 8, in num = 10 * (1/0) ZeroDivisionError: division by zero

由于没有匹配到指定的错误,所以程序还是报错了。

这些还不足以满足我们的需求,在一些自动化的代码中,我们想让代码生成错误日志,保存详细的错误信息,但是又不会停止代码的运行,这时,我们可以使用下列代码:

try: num = "1" + 1 # 会发生TypeError错误 print(num) except TypeError as f: print("发生TypeError错误,错误内容为:%s"%f)

执行结果:

发生TypeError错误,错误内容为:can only concatenate str (not "int") to str

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示在 Begin-End 之间编写程序代码。相关信息如下:

使用 input 获取列表;列表内的元素不一定全部都是数字,也有可能是其它类型的数据,如果是其它类型的数据,则不对该元素进行求和计算或者令该元素等于 0;打印计算后的结果。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧 “测试结果”区查看具体的测试集详情。 测试输入:

["a","b",[1,2,3],2,3,5]

预期输出:

10

实现代码:

# 请在下面的 Begin-End 之间按照注释中给出的提示编写正确的代码 ########## Begin ########## # 计算列表内所有数字的和 a=eval(input()) b=0 for x in a: try: b+=x except: continue print(b) ########## End ##########



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有