【Python学习篇】Python实验小练习——异常处理(十三)

 个人名片:

🎓作者简介:嵌入式领域优质创作者
🌐个人主页:妄北y

📞个人QQ:2061314755

💌个人邮箱:[mailto:2061314755@qq.com]
📱个人微信:Vir2025WBY

🖥️个人公众号:科技妄北
🖋️本文为妄北y原创佳作,独家首发于CSDN🎊🎊🎊
💡座右铭:改造世界固然伟大,但改造自我更为可贵。

专栏导航:

妄北y系列专栏导航:

物联网嵌入式开发项目:大学期间的毕业设计,课程设计,大创项目,各种竞赛项目,全面覆盖了需求分析、方案设计、实施与调试、成果展示以及总结反思等关键环节。📚💼💡

QT基础入门学习:对QT的基础图形化页面设计进行了一个简单的学习与认识,利用QT的基础知识进行了翻金币小游戏的制作。🛠️🔧💭

Linux基础编程:初步认识什么是Linux,为什么学Linux,安装环境,进行基础命令的学习,入门级的shell编程。🍻🎉🖥️

深耕Linux应用开发:分享Linux的基本概念、命令行操作、文件系统、用户和权限管理等,网络编程相关知识,TCP/IP 协议、套接字(Socket)编程等,可以实现网络通信功能。常见开源库的二次开发,如libcurl、OpenSSL、json-c、freetype等💐📝💡

Linux驱动开发:Linux驱动开发是Linux系统不可或缺的组成部分,它专注于编写特殊的程序——驱动程序。这些程序承载着硬件设备的详细信息,并扮演着操作系统与硬件间沟通的桥梁角色。驱动开发的核心使命在于确保硬件设备在Linux系统上顺畅运作,同时实现与操作系统的无缝集成,为用户带来流畅稳定的体验。🚀🔧💻

Linux项目开发:Linux基础知识的实践,做项目是最锻炼能力的一个学习方法,这里我们会学习到一些简单基础的项目开发与应用,而且都是毕业设计级别的哦。🤸🌱🚀

非常期待与您一同在这个广阔的互联网天地里,携手探索知识的海洋,互相学习,共同进步。🌐💫🌱 熠熠星光,照亮我们的成长之路

✨✨ 欢迎订阅本专栏,对专栏内容任何问题都可以随时联系博主,共同书写属于我们的精彩篇章!✨✨

文章介绍:

📚本篇文章将深入剖析Python学习的精髓与奥秘,与您一同分享相关知识!🎉🎉🎉

若您觉得文章尚可入目,期待您能慷慨地送上点赞、收藏与分享的三连支持!您的每一份鼓励,都是我创作路上源源不断的动力。让我们携手并进,共同奔跑,期待在顶峰相见的那一天,共庆辉煌!🚀🚀🚀

🙏衷心感谢大家的点赞👍、收藏⭐和评论✍️,您的支持是我前进的动力!

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:​​​​​​人工智能教程

目录:

目录:

一、实验目的:

二、实验环境:

三、实验内容:

四、实验步骤与结果

五、总结:

1. 实验过程中的问题及解决方法:

2. 实验收获:


一、实验目的:

(1)try-except-else语句

(2)finally语句

(3)断言语句

(4)异常抛出

二、实验环境:

        联网计算机一台/每人,内装Windows 7以上操作系统和安装Python 3.7集成开发环境IDLE。

三、实验内容:

        1. 从键盘输入一个整数,求100除以它的商,并显示输出。要求对从键盘输入的数值进行异常处理(不能出现除数为0)

        2. 编程实现索引超出范围异常index Error类型,对一个序列的索引值进行判断,如果超出则报错

        3.录入一个学生的成绩,把该学生的成绩转化为A优秀、B良好、C合格、D不及格的形式,最后将该学生的成绩打印出来。要求使用assert 断言处理分数不合理的情况

四、实验步骤与结果

1. 从键盘输入一个整数,求100除以它的商,并显示输出。要求对从键盘输入的数值进行异常处理(不能出现除数为0)。

源代码:

try:# 从键盘输入一个整数num = int(input("请输入一个整数: "))# 检查除数是否为0if num == 0:raise ZeroDivisionError("除数不能为0")# 计算100除以输入的整数的商result = 100 / num# 显示输出print(f"100除以{num}的商是: {result}")except ValueError:# 处理输入不是整数的情况print("输入无效,请输入一个整数。")except ZeroDivisionError as e:# 处理除数为0的情况print(e)

运行效果:

2. 编程实现索引超出范围异常index Error类型,对一个序列的索引值进行判断,如果超出则报错。

源代码:

def check_index(sequence, index):try:# 尝试访问序列中的元素element = sequence[index]return elementexcept IndexError:# 如果索引超出范围,抛出IndexError异常raise IndexError(f"Index {index} is out of range for sequence of length {len(sequence)}")# 示例使用
try:my_list = [1, 2, 3, 4, 5]index = 10element = check_index(my_list, index)print(f"Element at index {index} is {element}")
except IndexError as e:print(e)

运行效果:

3.录入一个学生的成绩,把该学生的成绩转化为A优秀、B良好、C合格、D不及格的形式,最后将该学生的成绩打印出来。要求使用assert 断言处理分数不合理的情况。

源代码:

def convert_score_to_grade(score):# 使用assert断言处理分数不合理的情况assert 0 <= score <= 100, "分数必须在0到100之间"if score >= 90:return 'A'elif score >= 80:return 'B'elif score >= 60:return 'C'else:return 'D'try:# 录入学生的成绩score = float(input("请输入学生的成绩: "))# 将成绩转化为等级grade = convert_score_to_grade(score)# 打印学生的成绩等级print(f"学生的成绩等级是: {grade}")
except ValueError:print("输入无效,请输入一个数字。")
except AssertionError as e:print(e)

运行效果:

五、总结:

1. 实验过程中的问题及解决方法:

问题1: 用户输入非整数的字符,用户输入0作为除数。

解决方法:

        使用异常处理机制(如`try-except`块)捕获并处理输入非整数的情况,提示用户重新输入。

        使用条件语句(如`if`语句)检查输入是否为0,如果是,抛出自定义异常或提示用户除数不能为0。

问题2: 用户可能输入超出序列范围的索引值。

解决方法:

        使用异常处理机制捕获并处理输入非整数的情况,提示用户重新输入。

        使用条件语句检查输入的索引是否在序列的有效范围内,如果不在,抛出自定义异常或提示用户索引超出范围。

问题3:用户可能输入超出0到100范围的分数。

解决方法:

        使用断言(`assert`)确保输入的分数在0到100之间,如果不在范围内,抛出自定义异常或提示用户分数不合理。

        使用条件语句将分数转换为相应的等级,并打印出来。

2. 实验收获:

通过实验,我深刻理解了异常处理在编程中的重要性。异常处理不仅能够提高程序的健壮性,还能在出现错误时提供清晰的错误信息,帮助用户或开发者快速定位问题,实验过程中,我不断思考如何处理各种异常情况,这锻炼了我的逻辑思维和问题解决能力。通过实际编码和调试,我学会了如何将理论知识应用到实际问题中,提高了我的编程技能,这次实验不仅加深了我对异常处理、断言、条件语句等编程概念的理解,还提升了我的编程实践能力和问题解决能力,为未来的编程工作打下了坚实的基础。

📝大佬觉得本文有所裨益,不妨轻点一下👍给予鼓励吧!

❤️❤️❤️本人虽努力,但能力尚浅,若有不足之处,恳请各位大佬不吝赐教,您的批评指正将是我进步的动力!😊😊😊

💖💖💖若您认为此篇文章对您有所帮助,烦请点赞👍并收藏🌟,您的支持是我前行的最大动力!

🚀🚀🚀任务在默默中完成,价值在悄然间提升。让我们携手共进,一起加油,迎接更美好的未来!🌈🌈🌈

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

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

相关文章

【教程】5分钟直接了解随机森林模型

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、什么是随机森林模型1.1.随机森林模型介绍1.2.为什么随机森林要用多棵决策树 二、怎么训练一个随机森林模型2.1.训练一个随机森林模型 随机森林模型是机器学习中常用的模型之一&#xff0c;它是决策树模型的一…

Node.js全栈指南:静态资源服务器

上一章【认识 MIME 和 HTTP】。 我们认识和了解了 MIME 的概念和作用&#xff0c;也简单地学习了通过浏览器控制台查看请求和返回的用法。 通过对不同的 HTML、CSS、JS 文件进行判断&#xff0c;设置不同的 MIME 值&#xff0c;得以让我们的浏览器正正确地接收和显示不同的文…

八爪鱼现金流-031,宽带到期记一笔负债

到期了&#xff0c;新弄的网络&#xff0c;记录一下负债包。 八爪鱼现金流 八爪鱼

英英词典(汇编实验)

功能要求&#xff1a; 1.单词及其英文解释的录入、修改和删除 (1 ) 录入新单词&#xff0c;把它插入到相应的位置(按词典顺序)&#xff0c;其后跟英文解释、同义词、反义词&#xff1b;&#xff08;此功能要求在文件中完成&#xff0c;其它功能可以将单词放在数据段中&#xf…

数据库原理之数据库基本概念

目录 前言 基本概念 数据库完整性 前言 今天我们来看看数据库的基本概念&#xff0c;帮助大家对数据库有一点点最基本的了解 基本概念 4个基本概念 数据data&#xff1a;描述事物的符号&#xff0c;数据库中存储的基本对象。 数据库Database&#xff1a;长期存储在计算机…

山东大学多核并行2024年回忆版

2024.6.13回忆版 矩阵向量乘不可整除代码 集合通信与点对点通信的区别 块划分、循环划分、循环块划分&#xff08;14个向量&#xff0c;4个进程&#xff09; 按行访问还是按列访问快 SISD系统问题 循环依赖问题 问题&#xff1a;为什么不能对这个循环并行化&#xff0…

Python逻辑控制语句 之 综合案例

需求&#xff1a; 1. 提示⽤户输⼊登录系统的⽤户名和密码 2. 校验⽤户名和密码是否正确(正确的⽤户名:admin、密码:123456) 3. 如果⽤户名和密码都正确&#xff0c;打印“登录成功!”&#xff0c;并结束程序 4. 如果⽤户名或密码错误&#xff0c;打印“⽤户名或密码错误!”…

Django 对模型创建的两表插入数据

1&#xff0c;添加模型 Test/app8/models.py from django.db import modelsclass User(models.Model):username models.CharField(max_length50, uniqueTrue)email models.EmailField(uniqueTrue)password models.CharField(max_length128) # 使用哈希存储密码first_name …

DM 的断点续传测试

作者&#xff1a; 大鱼海棠 原文来源&#xff1a; https://tidb.net/blog/4540ae34 一、概述 DM有all、full、incremental三种数据迁移同步方式&#xff08;task-mode&#xff09;&#xff0c;在all同步模式下&#xff0c;因一些特殊情况&#xff0c;需要变更上游MySQL的数…

LDO产品的基础知识解析

低压降稳压器 (LDO)是一种用于调节较高电压输入产生的输出电压的简单方法。在大多数情况下&#xff0c;低压降稳压器都易于设计和使用。然而&#xff0c;如今的现代应用都包括各种各样的模拟和数字系统&#xff0c;而有些系统和工作条件将决定哪种LDO最适合相关电路&#xff0c…

springboot的特点是什么?

Spring Boot是一个基于Spring框架的开源项目&#xff0c;它旨在简化Spring应用的初始搭建和开发过程。以下是Spring Boot的一些主要特点&#xff1a; 快速开发&#xff1a; Spring Boot提供了许多默认配置&#xff0c;使得开发者可以更快地开始开发应用程序&#xff0c;而无需…

秋招突击——6/28、6.29——复习{数位DP——度的数量}——新作{}

文章目录 引言复习数位DP——度的数量个人实现参考实现 总结 引言 头一次产生了那么强烈的动摇&#xff0c;对于未来没有任何的感觉的&#xff0c;不知道将会往哪里走&#xff0c;不知道怎么办。可能还是因为实习吧&#xff0c;再加上最近复习也没有什么进展&#xff0c;并不知…

如何借助 LLM 设计和实现任务型对话 Agent

1 引言 在人工智能的快速发展中&#xff0c;任务型对话 Agent 正成为提升用户体验和工作效率的关键技术。这类系统通过自然语言交互&#xff0c;专注于高效执行特定任务&#xff0c;如预订酒店或查询天气。尽管市场上的开源框架如 Rasa 和 Microsoft Bot Framework 在对话理解…

揭秘多年免费听音乐、直播、影视的自用方案:手机、电视、电脑多平台0成本实现媒体自由(内含相关资源)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 多媒体自由 📒🎧 音乐资源📱安卓平台🍎 苹果平台💻 PC平台🎥 影视资源📱 安卓平台🍎 苹果平台📺 电视盒子💻 PC平台📥 电影下载📺 直播资源📱 手机平台💻 PC平台📺 电视盒子⚓️ 相关链接 ⚓️�…

ISS检测原理

ISS(Intrinsic Shape Signatures)是由Yu Zhong于2009年提出的一种三维形状描述子,用于描述局部或半局部区域的点云,局部区域可以理解为以一个点云中某点为球心,以一定半径构成的可以包含多个内点的球形区域,半局部则是半个球形区域。ISS可用于不同视角点云的配准、快速姿…

Nuxt3 的生命周期和钩子函数(六)

title: Nuxt3 的生命周期和钩子函数&#xff08;六&#xff09; date: 2024/6/30 updated: 2024/6/30 author: cmdragon excerpt: 摘要&#xff1a;本文深入解析了Nuxt3框架中的多个核心生命周期钩子和组件注册功能&#xff0c;包括imports:sources、imports:extend、import…

刷代码随想录有感(121):贪心算法——买卖股票的最佳时机III

题干&#xff1a; 代码&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {if (prices.size() < 2) return 0;int buy1 prices[0];int buy2 prices[0];int sell1 0, sell2 0;for (int i 1; i < prices.size(); i) {buy1 min(bu…

dsp入门

安装环境 安装 ccs5.5安装 BIOS-MCSDK 多核软件开发包安装 仿真器驱动 工程创建与导入工程 创建工程 创建工程填信息添加.cmd文件&#xff0c;配置内存编译 导入工程 导入 配置工程 选择properties 环境变量 头文件 库文件 仿真器 添加仿真器 先调出仿真器界面创建仿…

rtthread stm32h743的使用(十二)spi设备fal驱动的使用

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验&#xff0c;核心板如图&#xff1a; fal驱动的使用是建立在sfud驱动之上的&#xff0c;所以我们在上一节使用的工程基础上继续实验。 1.在上一节工程的基础…