Python实验五 异常处理

news2024/11/15 19:35:36

实验 1:为下列代码添加异常处理。

x=int(input('请输入一个整数'))

print(100/x)

# 实验 1:为下列代码添加异常处理。
try:
    x=int(input('请输入一个整数:'))
    print(100/x)
except ValueError:
    print('请输入一个整数')
except ZeroDivisionError:
    print('除数不能为0')

 

 实验 2:阅读程序 except01.py,回答问题。

要求:

1)描述程序的功能。

读取temp.py里的前9个字符内容,并且将剩下的内容读取进801.txt中。

2)程序的第 11 行和第 13 行,为什么要进行 if source!=None if target!=None 的判断?

finally 语句块是一定会被执行的语句块,其中的代码也可能抛出异常。在程序中,第 4 行的 temp.py 文件如果不存在,第 12 行执行 source.close()语句时,将会因对象不存在而抛出异常。为避免因 source 对象不存在而导致程序因异常退出,增加一个判断语句,使程序更为健壮。

3)查阅文献,说明 IOError 异常的功能。

输入输出异常。

01 # except01.py

02 source=target=None

03 try :

04 source=open("temp.py",encoding="GBK")

05 print(source.read(9))

06 target=open("801.txt","w+")

07 target.writelines(source.readline())

08 except (FileNotFoundError,IOError):

09 print("没有找到文件或读写失败")

10 finally:

11 if source!=None:

12 source.close()

13 if target!=None:

14 target.close()

# except01.py
source=target=None
try :
    source=open("C:/temp.py",encoding="GBK")
    print(source.read(9))
    target=open("C:/801.txt","w+")
    target.writelines(source.readline())
except (FileNotFoundError,IOError):
    print("没有找到文件或读写失败")
finally:
    if source!=None:
        source.close()
    if target!=None:
        target.close()

 

 实验 3编写异常处理程序。

要求:输入姓名和月工资计算年薪,如果输入格式不正确则抛出异常

提示:程序中的异常可能来自两个方面,一是输入工资信息时输入了非数字格式,会抛出

NameError SyntaxError 异常;二是输入工资范围不正确,如输入了负值或数值太大,这 是一个用户自定义的异常。

# 要求:输入姓名和月工资计算年薪,如果输入格式不正确则抛出异常。
# 提示:程序中的异常可能来自两个方面,一是输入工资信息时输入了非数字格式,会抛出
# NameError 或 SyntaxError 异常;二是输入工资范围不正确,如输入了负值或数值太大,这 是一个用户自定义的异常。
def sum_salary(salary):
    if salary < 0 or salary > 10000:
        raise ValueError
    return salary * 12
name = input("请输入姓名:")
try:
    salary = eval(input("请输入月工资:"))
    print(f"{name}的年薪为:{sum_salary(salary)}")
except (NameError, SyntaxError):
    print("输入工资信息时输入了非数字格式!!!")
except ValueError:
    print("输入工资范围不正确!!!")

 

 实验 4编写异常处理程序。

要求:定义一个 Circle 类,其中有求面积的方法,当半径小于 0 时,抛出一个用户自定义异常。

 

#实验 4:编写异常处理程序。
# 要求:定义一个 Circle 类,其中有求面积的方法,当半径小于 0 时,抛出一个用户自定义异常。
import math
class Circle:
    def __init__(self,r):
        self.r=r
    def area(self):
        if self.r<0:
            raise UserException(1,"半径小于0")
        return math.pi*self.r**2

class UserException(Exception):
    def __init__(self,id,msg):
        self.id=id
        self.msg=msg

c=Circle(-1)
try:
    c.area()
    print("面积为:",c.area())
except Exception as e:
    print(e)

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1164012.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作系统 day05(体系结构、开机过程、虚拟机)

一&#xff0c;操作系统的体系结构 内核 内核是操作系统最基本、最核心的部分&#xff0c;实现操作系统内核功能的那些程序就是内核程序这其中&#xff1a;时钟、中断、原语是与硬件关联最紧密的模块&#xff0c;而进程管理、存储器管理、设备管理更多的是对数据结构的操作&…

【Midjourney入门教程1】Midjourney的注册、订阅

文章目录 前言一、Midjourney是什么二、Midjourney注册三、新建自己的服务器四、开通订阅 前言 AI绘画即指人工智能绘画&#xff0c;是一种计算机生成绘画的方式。是AIGC应用领域内的一大分支。 AI绘画主要分为两个部分&#xff0c;一个是对图像的分析与判断&#xff0c;即“…

【Redis】的简介和安装配置(Linux和windows)及操作命令

目录 一、概述 1.介绍 2.特点 二、安配 1. 安装 2. 配置 3. 主机连接 1.Linux连接 2.windows连接 三、命令 1. 字符串(String) 2. 哈希(Hash) 3. 列表&#xff08;List&#xff09; 4. 集合&#xff08;Set&#xff09; 一、概述 1.介绍 Redis是一个开源的、基…

EViews| 基础操作 备战下周机考

目录 一、创建工作文件 1、非时间序列数据 2、时间序列数据 二、导入数据 1、导入数据 2、保存数据组合或方程结果 三、估计回归模型 1、估计回归模型 2、回归结果名词解读 四、检验模型设定错误 1、检验是否遗漏变量 2-1、检验是否加入了不相干变量 2-2、惩罚新增…

2023年最新版潮乎盲盒源码含搭建教程

后台开发语言&#xff1a;后端 Laravel 框架开发 前端开发框架&#xff1a;uniappvue 环境配置: php7.4 mysql5.6 nginx1.22 redis&#xff08;建议宝塔面板或 lnmp&#xff09; 源码获取请自行百度&#xff1a;一生相随博客 一生相随博客致力于分享全网优质资源&#x…

大数据与健康:技术助力医疗卫生事业腾飞

大数据与健康&#xff1a;技术助力医疗卫生事业腾飞 随着科技的飞速发展&#xff0c;大数据技术已经渗透到我们生活的方方面面&#xff0c;包括医疗卫生领域。本文将对大数据在健康医疗领域的应用进行分析&#xff0c;并通过数据图表展示其发展趋势和前景。 一、背景介绍 近…

IPv4首部格式

IPv4首部格式 IPv4数据报的首部格式及其内容是实现IPv4协议各种功能的基础。 在TCPIP标准中&#xff0c;各种数据格式常常以32比特(即4字节)为单位来描述。 IPv4首部格式图 ## IPv4数据报的组成 主要由固定部分(20字节)可变部分(最大40字节) - 固定部分是指每个IPv4数据报都必…

Jmeter调用测试片段 —— 模块控制器

可以使用模块控制器调用测试片段。模块控制器提供了一种在运行时将测试片段替换为当前测试计划的机制。测试片段可以位于任何线程组中。 1、打开一个Jmeter窗口&#xff0c;添加好线程组、用户定义变量、模块控制器、测试片段、察看结果树。 2、用户定义变量同样定义好访问ip及…

ETHERNET/IP转RS485/RS232自由协议网关连接AB系统的简单配置方法

想将ETHERNET/IP网络和RS485/RS232总线连接起来吗&#xff1f;来看这款通讯网关&#xff01; 捷米特JM-EIP-RS485/232是一款通讯网关&#xff0c;它具有将ETHERNET/IP网络和RS485/RS232总线连接起来的功能。作为ETHERNET/IP网络的从站&#xff0c;它可以连接AB、欧姆龙等品牌的…

游戏反Xposed框架解决方案

在游戏安全对抗过程中&#xff0c;除了常见的内存修改、加速、破解等作弊手段&#xff0c;还有一类危害严重的外挂——「注入挂」。 据FairGuard游戏安全数据统计&#xff0c;在游戏面临的众多安全风险中&#xff0c;注入挂的占比高达17% 。如此高的占比&#xff0c;可见注入挂…

软件测试工程师必须掌握的Linux常用命令

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

msvcp120.dll下载修复详细方法与解决方法

MSVCP120.dll文件丢失是一个常见的问题&#xff0c;它通常会导致某些程序无法正常运行。这个问题可能是由于多种原因引起的&#xff0c;例如系统更新、软件卸载或病毒感染等。在这篇文章中&#xff0c;我将为您提供四种解决MSVCP120.dll文件丢失的方法&#xff0c;帮助您快速恢…

【Redis】入门篇--安装以及常用命令

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Redis的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Redis是什么 二. Redis有什么优势 三…

一秒文件搜索神器—Everything,结合内网穿透成为在线搜索神器!

Everythingcpolar搭建在线资料库&#xff0c;实现随时随地访问 文章目录 Everythingcpolar搭建在线资料库&#xff0c;实现随时随地访问前言1.软件安装完成后&#xff0c;打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 前…

快速灵敏的 Flink1

一、flink单机安装 1、解压 tar -zxvf ./flink-1.13.2-bin-scala_2.12.tgz -C /opt/soft/ 2、改名字 mv ./flink-1.13.2/ ./flink1132 3、profile配置 #FLINK export FLINK_HOME/opt/soft/flink1132 export PATH$FLINK_HOME/bin:$PATH 4、查看版本 flink --version 5、…

[GitLab] 安装Git 指定版本

卸载旧版本 检查是否已经安装 git --version如果已经安装&#xff0c;先卸载 yum -y remove git安装新版本 在GitHub上选择需要下载的版本 Git版本 在/usr/local/目录下新建文件夹&#xff1a;git&#xff0c;并在/usr/local/git/文件夹内下载压缩包 wget https://github…

llava1.5模型安装、预测、训练详细教程

引言 本博客介绍LLava1.5多模态大模型的安装教程、训练教程、预测教程&#xff0c;也会涉及到hugging face使用与wandb使用。 源码链接:点击这里 demo链接:点击这里 论文链接:点击这里 一、系统环境 ubuntu 20.04 gpu: 2*3090 cuda:11.6 二、LLava环境安装 1、代码下载…

数据库的增删查改(一)

Mysql的基本操作 一. 新增1.单行数据全列插入 2.多行数据指定列插入二.查询1.全列查询2.指定列查询3.查询字段为表达式4.别名5.去重6.排序7.条件查询 一. 新增 1.单行数据全列插入 表示在SQL语句中一行一行插入. 2.多行数据指定列插入 二.查询 1.全列查询 全列查询就是将val…

linux查看文件夹使用情况以及查看文件大小

1、ls ls 命令是 Linux 中最常用的文件和目录列表命令之一。它可以显示文件的各种属性&#xff0c;包括文件大小。 ls -l <文件名>上述命令会显示文件的详细信息&#xff0c;其中包括文件的大小。文件大小以字节为单位显示&#xff0c;并且在输出中的第 5 列。4096 表示…

JavaScript基础之BOM与DOM

文章目录 BOM操作window对象window的子对象之navigator对象&#xff08;了解即可&#xff09;window的子对象之screen对象&#xff08;了解即可&#xff09;window的子对象之history对象&#xff08;了解即可&#xff09;window的子对象之location对象 弹出框警告框确认框提示框…