【python经验总结】我与bug的那些日子

news/2024/5/4 2:04:54/文章来源:https://blog.csdn.net/weixin_41102528/article/details/126606193

【python经验总结】我与bug的那段岁月

💖💖💖💕💕💕欢迎来到本博客💕💕💕💖💖💖
.
🎁支持:如果觉得博主的文章写得还说得过去或者博客对您有帮助的话,可以关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!

🎉🎉Welcome to my blog!🎉🎉

📃个人CSDN博客主页:热爱科技的刘同学🌈🌈🌈

我学习编程六年,其中python就得占用我四、五年的时间。在这四五年里,bug这一词光是听,我的耳朵也该起茧子了。虽然bug没有给我带来过什么“灭顶之灾”,但这仍然无法改变我对bug的看法。

对付bug的有效方法不是一味地避其锋芒,而是直面它或是将它扼杀在祸根之中。

在这里插入图片描述

举个例子。当我们身后有一堵墙、面前有无尽的黑暗时,我们不会像鸵鸟一样一头扎在墙根,我们会背靠着墙,直面未知与黑暗!

读完以下内容,相信你一定能将bug扼杀在祸根之中!

文章目录

  • 【python经验总结】我与bug的那段岁月
  • 一、常见类型
    • (一)粗心导致语法错误
    • (二)知识点不熟练
    • (三)思路不清晰
    • (四)被动掉坑
      • 1、基础形式
      • 2、拓展模式
        • try-except-else
        • try-except-else-finally
  • 二、常见异常类型
  • 三、Traceback模块的使用

一、常见类型

(一)粗心导致语法错误

例如:

  1. 漏了末尾冒号;
  2. 缩进错误;
  3. 英文符号错用为中文符号;
  4. 字符串拼接时,把字符串、数字类型拼接到一起;
  5. 没有定义变量;
  6. == 错用成 =。

(二)知识点不熟练

浅浅的举两个例子吧,毕竟python的语法有那么多:

  1. 索引越界;
  2. append()不按照规定使用。

(三)思路不清晰

有很多看似很牛逼的项目,只用一个文件,几百行代码就能搞定,堪称高效。但如果你在里面好好的逛了一圈之后就一定会惊呼:“注释都救不了他了!”

(四)被动掉坑

代码逻辑没有错误,只因用户操作不当或意外情况导致程序崩溃。

解决方案:异常处置机制(出现异常及时捕获,内部消化,确保程序运行)

1、基础形式

try:..................  # 可能出现异常的代码
excpet xxx:  # 填入可能会报错问题。若无法预知,可以直接使用 excpet:..................  # 报错后执行的代码

2、拓展模式

try-except-else

若try块中没有抛出异常,则执行else块;若抛出异常,则执行except。

举个整数相除的例子:

try:a = int(input('请输入一个整数:'))b = int(input('请输入一个整数:'))c = a / b
except BaseException as e:print('有错误', e)
else:print(c)

try-except-else-finally

若try块中没有抛出异常,则执行else块;若抛出异常,则执行except;无论是否有异常,finally都会执行。

用finally优化一下刚才的程序:

try:a = int(input('请输入一个整数:'))b = int(input('请输入一个整数:'))c = a / b
except BaseException as m:print('有错误', m)
else:print(c)
finally:print('程序执行完毕!')

二、常见异常类型

序号名称释义
1ZeroDivisionError除(或取模)零(所有数据类型)
2ImportError序列中没有此索引
3KeyError映射中没有这个键
4NameError未声明/初始化变量
5SyntaxError语法错误
6ValueError传入无效参数
7TypeError不同类型连接在一起

三、Traceback模块的使用

对比起前两个程序,使用Traceback模块明显要

import tracebacktry:print('----------------------------')print(10/0)  # 运行后会报错的
except:traceback.print_exc()

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

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

相关文章

猿创征文|【Typescript】搭建TS的编译环境

多一些不为什么的坚持🤳 贤蛋 🥚大眼萌 ,一名很普通但不想普通的程序媛🙊 📝本文章收录于专栏:Typescript学习 搭建TS的编译环境🎈 认识Typescript💊 Typescript 的编译环境&#x1…

110道Java初级面试题及答案(最新Java初级面试题大汇总)

史上最全Java初中级面试题,发现网上很多Java初级面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本人发现网上虽然有不少Java相关的面试题,但第一未必全,第二未必有答案&am…

windows系统使用docker-compose

windows系统使用docker-compose 为什么使用docker-compose? 使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具 1、新建docker-compose.yml文件 在windows系统找到docker的安装目录:C:P…

2022 IDC中国数字金融论坛 | 筑基金融信创 共话金融科技新愿景

2022年8月18日,第十届“IDC中国数字金融论坛”于北京举行。本届论坛以“开放融合、数字信任、智慧金融”为主题,基于IDC对全球金融科技发展及行业趋势的研究,发布对金融行业趋势的解读与对数字金融发展的洞见,为金融领域资深专家及…

怎么把PDF转换成CAD文件格式呢?

我们在工作中难免会遇到各种文件格式,而每种格式都有其独特的优点。比如PDF文件格式比其他文件格式更稳定,基本上所有系统都可以打开,内容不容易修改。而CAD文件格式,在工程建设中,尤其是设计阶段被广泛应用。那么当我…

27、CityNeRF

简介 主页:https://city-super.github.io/citynerf/ CityNeRF能够将城市尺度的3D场景打包到一个统一的模型中,它能够保存从卫星到地面不等尺度的高质量细节。顶部:使用边缘颜色蓝色(L1)、绿色(L2)和橙色(L3)来表示从最远到最近的三个等级,P…

L73.linux命令每日一练 -- 第十章 Linux网络管理命令 -- dig和host

10.19 dig:域名查询工具 10.19.1 命令详解 ​ 【命令星级】 ★★★★☆ ​ 【功能说明】 ​ dig命令是常用的域名查询工具,可以用于测试域名系统的工作是否正常。 ​ 【语法格式】 dig [option] dig [选项]​ **说明:**在dig命令及后面…

Debian/Ubuntu/Kali 如何安装 Spotify 音乐白嫖神器

How to install Spotify on Debian/Ubuntu/Kali Linux 可能有小伙伴不了解,什么是Spotify?博主照搬维基百科来做 简要介绍: Spotify(/ˈspɒtɪfaɪ/),中文译作“声田”),是一家瑞典…

如何图片批量重命名编号不要汉字?

如何图片批量重命名编号不要汉字?如果你是一个摄影发烧友,或者你是一名从事摄影相关工作的朋友,那么肯定经常会将拍摄好的照片转移到电脑上,然后进行批量重命名。其实不管什么时候,我们经常会遇到图片批量重命名的操作…

group by后,使用nvl失效问题

原因 首先,这篇博客写出了这个问题出现的原因: 链接: nvl(sum(字段),0) 的时候,能展示数据0,但是group by 下某个伪列的时候,查不到数据(转载) 这里我也总结下原因:没有记录返回则…

使用Kibana进行数据可视化

使用 Kibana 进行数据可视化 使用 ELK 堆栈(Elasticsearch、Logstash 和 Kibana)和 Elastic Stack 的一部分 Kibana 可视化和分析数据。 课程英文名:Data Visualization with Kibana 此视频教程共21.0小时,中英双语字幕&#x…

[模拟][模电][面试][运放]仪表放大器

前言 昨天访问量还是29万1千多,今天就变成了28万3千,CSDN又在倒退了!!! 目录前言框图\;\\\;\\\;框图 虚短:放大器的正负输入假设短路,两个端口电位相同虚断:放大器的正负输入假设断…

Linux命令记录大全

至于为什么写下该篇博客 身为以为软件工程师平时在工作中会经常的使用Linux系统,久而久之会发现该系统比我们平时用的Windows系统有着巨大的优势,不管是从安全层面和可扩展层面。而Linux的命令可以说是非常的多并难以全部记住,所以我写下该片…

Hive 多数组合并 CONCAT_WS

目录 多列的情况 先上结果 拆分concat_ws 可以拆分数组 然后在用split切分再变回数组 多行合并 多列的情况 先上结果 select split(concat_ws(,,array("AAA", "bbb"), array(CCC,"AAA", "bbb"), array("GGG","…

react native 使用阿里字体图标库

前言 本文基于 “react-native”: “0.69.5” 版本。 1.下载iconfont图标文件 将iconfont图标文件放置在src/assets/fonts react native 所需的字体图标文件仅需iconfont.ttf这一个文件即可其余文件只是用于打开demo_index.html,打包时可将其余文件删除 2.链接字…

Java配置41-搭建Kafka服务器

目录 1.服务器环境 2.安装kafka 1)上传安装介质 2)解压安装 3)修改配置文件 4)启动zookeeper 5)启动kafka 6)测试 ​​​​​ 1.服务器环境 系统版本:Red Hat Enterprise Linux Server…

IC入行第一步:怎样选择岗位和公司?

IC行业是一个比较火的行业,不少人想要转行IC,但不知道该如何选择岗位和公司? 其实这得根据个人的学历和专业结合选择,转行之前一定要考虑清楚,不要盲从,毕竟入行是一件大事,得认真分析选择适合…

Java配置42-配置redis高可用(sentinel监控)

目录 1.服务器环境 2.Redis服务器概况 3.Redis高可用 1)复制配置文件 2)修改redis.conf 3)修改sentinel.conf文件 4)启动redis和sentinel 5)配置redis信息 1.服务器环境 系统版本:Red Hat Enterpri…

共话龙蜥:中国操作系统到底有没有角力世界舞台的实力?

操作系统是计算机的灵魂所在,更是现代社会数字经济转型的关键。随着国内科技力量的壮大,当出现如 CentOS 停服等机遇时,会进一步助推国内操作系统发展。如今国内开源操作系统遍地开花,我们到底有没有角力国际舞台的实力呢&#xf…

vue独立提供模板下载功能

需求描述:页面需要下载模板文件(word、excel),这些文件是固定的,如果存储在服务端,由后端负责返回数据流,前端再处理数据流则太浪费性能。把文件放到前端,用户下载时直接提供。但是传…