【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("请输入一个整数: "))
    
    # 检查除数是否为0
    if 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 element
    except 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 = 10
    element = 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.mfbz.cn/a/759092.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据同步软件有哪些

数据同步软件有哪些呢&#xff1f;随着企业规模的扩大&#xff0c;企业数据也积累得越来越多&#xff0c;万一发生宕机风险&#xff0c;那么这个损失将不可估量。所以为了容灾备用&#xff0c;我们往往需要将数据同步到另一台备胎服务器上&#xff0c;进行冗余。 那么需要同步的…

GPU配置pytorch环境(links for torch)

一、创建一个新的虚拟环境 二、激活虚拟环境 三、打开或新建一个pycharm项目&#xff0c;把环境选成我们刚刚新建的虚拟环境 四、从links for torch网站下载与自己cuda版本和python版本对应的torch 五、在pycharm的终端pip install 安装torch 直到显示成功安装 六、验证pytorch…

【Matlab函数分析】imread从图形文件读取图像

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f91…

gin 服务端无法使用sse流式nginx配置

我在本地使用 gin 可以流式的将大模型数据传递给前端。但是当我部署到服务器中时&#xff0c;会阻塞一段时间&#xff0c;然后显示一大段文本。 起初我怀疑是gin 没有及时将数据刷到管道中&#xff0c;但是经过测试&#xff0c;还是会阻塞。 c.Writer.(http.Flusher).Flush()最…

HTML5的多线程技术:Web Worker API

Web Workers API 是HTML5的一项技术&#xff0c;它允许在浏览器后台独立于主线程运行脚本&#xff0c;即允许进行多线程处理。这对于执行密集型计算任务特别有用&#xff0c;因为它可以防止这些任务阻塞用户界面&#xff0c;从而保持网页的响应性和交互性。Web Workers在自己的…

CAS服务端部署

部署CAS Cas服务端其实就是一个war包。 在资源\cas\source\cas-server-4.0.0-release\cas-server-4.0.0\modules目录下cas-server-webapp-4.0.0.war 将其改名为cas.war放入tomcat目录下的webapps下。启动tomcat自动解压war包。浏览器输入 登录页面 http://localhost:8080/ca…

43 - 部门工资前三高的所有员工(高频 SQL 50 题基础版)

43 - 部门工资前三高的所有员工 # dense_rank 排名selectDepartment,Employee,Salary from(selectd.name as Department,e.name as Employee,e.salary as Salary,(dense_rank() over (partition by d.name order by e.salary desc)) as rankingfrom Employee e left join Depar…

【设计模式】行为型-状态模式

在变幻的时光中&#xff0c;状态如诗篇般细腻流转。 文章目录 一、可调节的灯光二、状态模式三、状态模式的核心组件四、运用状态模式五、状态模式的应用场景六、小结推荐阅读 一、可调节的灯光 场景假设&#xff1a;我们有一个电灯&#xff0c;它可以被打开和关闭。用户可以…

Nvidia jetson Orin/Nano + 智能座舱摄像头实现车载AI视觉

智能座舱系统包括DMS&#xff08;Driver Monitor System&#xff09;驾驶员疲劳监测系统和OMS乘员监测系统&#xff0c;通过在车内安装摄像头感知驾驶员和乘客的行为以及车内状况&#xff1a;DMS摄像头能够实现驾驶员疲劳监测、驾驶员注意力监测、危险驾驶行为监测以及驾驶员身…

【python】python基于tkinter的学生成绩管理系统(源码+数据文件)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

如何做到高级Kotlin强化实战?(一)

高级Kotlin强化实战&#xff08;一&#xff09; 第一章 Kotlin 入门教程1.Kotlin 入门介绍2.Kotlin 与 Java 比较 第一章 Kotlin 入门教程 1.Kotlin 入门介绍 Kotlin 概述 Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言。它主要是 JetBrains 开发团队所开发出来的编程…

打靶记录——靶机medium_socnet

靶机下载地址 https://www.vulnhub.com/entry/boredhackerblog-social-network,454/ 打靶过程 由于靶机和我的Kali都处于同一个网段&#xff0c;所以使用arpscan二次发现技术来识别目标主机的IP地址 arpscan -l除了192.168.174.133&#xff0c;其他IP都是我VMware虚拟机正…

算法力扣刷题 二十六【459.重复的子字符串】

前言 字符串篇&#xff0c;继续。 记录 二十六【459.重复的子字符串】 一、题目阅读 给定一个非空的字符串 s &#xff0c;检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s "abab" 输出: true 解释: 可由子串 "ab" 重复两次构成。示例…

在TkinterGUI界面显示WIFI网络(ESP32s3)摄像头画面

本实验结合了之前写过的两篇文章Python调用摄像头&#xff0c;实时显示视频在Tkinter界面以及ESP32 S3搭载OV2640摄像头释放热点&#xff08;AP&#xff09;工作模式–Arduino程序&#xff0c;当然如果手头有其他可以获得网络摄像头的URL即用于访问摄像头视频流的网络地址&…

浅谈Tomcat

文章目录 一、什么是Tomcat&#xff1f;二、Tomcat的下载安装三、使用tomcat访问资源 一、什么是Tomcat&#xff1f; Tomcat 就是一个 HTTP 服务器。 前面我们聊了HTTP服务器&#xff0c;像我们在网页输入URL&#xff0c;其实就是在给人家的HTTP服务器发送请求&#xff0c;既…

计算机网络之数据通信原理(中)

上节内容传送口&#xff1a;数据通信原理基础 1.数据传输方式 1.1并行传输 并行传输: 字符编码的各个比特同时传输 特点&#xff1a; 一个比特时间内可传输一个字符&#xff0c;传输速度快&#xff0c;每个比特传输要求一个单独的信道支持&#xff0c;通信成本高&#xf…

红黑树插入删除流程(流程图)

红黑树插入删除流程&#xff08;流程图&#xff09; 红黑树性质 左根右(二叉树&#xff09;根叶黑&#xff08;根节点是黑色的&#xff09;不红红&#xff08;不存在相邻两个红色节点&#xff09;黑路同&#xff08;对于每个节点&#xff0c;从该节点出发到任一空叶节点所经过…

收银系统源码-千呼新零售【全场景收银】

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

intellij idea中使用R语言plot画图无图像问题

1、在intellij idea中使用R语言plot函数时&#xff0c;会遇到各种各样的问题&#xff0c;会出现图片不显示问题&#xff0c; 可以看到&#xff0c;目前我电脑r语言版本为4.2.1&#xff0c;输入下面代码&#xff1a; # # 安装包 # install.packages(ggplot2) # library(ggplot2…

理解MySQL核心技术:外键的概念作用和应用实例

引言 在数据库管理系统&#xff08;DBMS&#xff09;中&#xff0c;外键&#xff08;Foreign Key&#xff09;是维持数据一致性和实现数据完整性的重要工具。本文将详细介绍MySQL外键的基本概念、作用&#xff0c;以及相关的操作指南和应用实例&#xff0c;帮助读者掌握并灵活…