Python操作的5个坏习惯,你中了几个呢?

GOM Correlate拉伸试验后处理操作 本文描述了使用GOM Software 2022对拉伸试样进行后处理的操作,包括设置检测点、引伸计、输出应变数据到表格、输出报告为视频等 阅读详情

很多文章都有介绍怎么写好 Python,我今天呢相反,说说写代码时的几个坏习惯。有的习惯会让 Bug 变得隐蔽难以追踪,当然,也有的并没有错误,只是个人觉得不够完美。

注意:示例代码在 Python 3.6 环境下编写

1、用列表作函数的默认参数

看下面这个例子

图片

正常我们期望的结果应该是这样的

图片

但当我们执行代码后,只会得到这样的结果

图片

与预期不一致。为什么呢?因为 Python 列表是可变对象,而且函数传参又是传的引用,所以当第二次调用 func 方法前,b 中已经有了元素 1,调用后 b 最终有两个元素 1 和 2。

示例中 func 方法比较简单,当发现问题的时候简单看下就能找到根源。但是,如果是在一个比较复杂的方法里面,你有可能会粗心的忽略这一点,从而会碰到一些莫名其妙的问题。

所以,当我们要为函数设置默认参数的时候,不要使用可变对象。

上面的代码改成这样就 OK 了

图片

2、文件操作

很多刚接触 Python 的伙伴做文件操作的时候很容易写类似的代码

图片

这没有问题,不过文件资源我们没有必要手动去维护,像关闭这样的操作交给上下文管理器做就好。

这样看起来不是清爽很多。

3、捕获所有异常

图片

就像上面一样,有时我们为了能够快速的完成功能,很容易不管三七二十一,就捕获 Exception 异常。这可能会捕捉到键盘中断(KeyboardInterrupt)(CTRL + C)或断言错误(AsstionError)等异常。

捕获不确定的异常,有时也会让我们的程序出现莫名其妙的问题,我们应该避免这样做。

准确的做法是根据上下文捕获 ValueError 、AttributeError 、TypeError 等比较具体的异常,然后做适当的错误处理,比如打印日志等。

4、忽略 Python 的 for…else 语法

开发中我们很容易碰到类似的需求,在一个列表中,确定某个特定的元素是否存在。比如,下面的代码便是确定列表中有没有奇数存在

图片

这里,我们使用了一个标识 is_odd_exist,默认为 False。当找到奇数时,将其置为 True,然后跳出循环。这样写并没有问题,但是我们可以换种方式

图片

先介绍下 Python 的 for…else 语法,当 for 循环是正常结束时(即不是通过 break 跳出结束的),会执行 else 中的语句。

这里,我们使用了相对于其他语言如 C、PHP 等不同的一种方式,完成了相同的功能,看起来代码也简洁了不少。

5、使用键遍历字典

初学 Python 的伙伴,可能容易写出这样的代码

图片

同样,这也是没有问题的,但看起来并不直观。字典遍历的时候,其实可以直接取出键值信息,像这样

这样的话,看起来要明了一些。

上面提到的几点有些带有自己一定的偏见,不要求大家都接受,选择合理的使用就好。

最后

在学习python中有任何困难不懂的可以微信扫描下方优快云官方认证二维码加入python交流学习多多交流问题,互帮互助,这里有不错的学习教程和开发工具。
(python兼职资源+python全套学习资料)

读者福利:知道你可能对Python感兴趣,便准备了这套python学习资料
对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。 一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:Python永久使用安装包、Python web开发,Python爬虫,Python数据分析,人工智能、软件测试、机器学习等学习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
在这里插入图片描述

👉Python必备开发工具👈

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉100道Python练习题👈

检查学习结果。
在这里插入图片描述

👉面试刷题👈

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

资料领取

上述这份完整版的Python全套学习资料已经上传优快云官方,朋友们如果需要可以微信扫描下方优快云官方认证二维码输入“领取资料” 即可领取

如何解决Elsevier和IEEE期刊之间参考文献的转换问题 Elsevier期刊和IEEE旗下的期刊两者模版互相转换的时候,会发现Elsevier模版的参考文献是存放在.bib文件下的,然后在.tex文件中直接引用即可。3. 在IEEE的.tex文件中的\end{document}命令行之前,添加下面的这句话(ps:\bibliography{**}中的**名称即为.bib文件的名称)如何将Elsevier的参考文献快速的转成IEEE期刊可用的格式,是本博客需要解决的问题。2. 将下载好的.bib文件,上传到IEEE的latex文件中。 阅读详情

相关推荐

华为昇腾服务器npu中安装paddle,pytorch等环境,训练代码迁移适配等问题记录

参考文档:https://github.com/PaddlePaddle/PaddleCustomDevice/blob/develop/backends/npu/README_cn.md

qq_29220369的博客 4112

9 个最糟糕的 Python 编程习惯

  译自:https://www.tutorialdocs.com/article/9-worst-python-practices.html 目录 使用可变对象作为默认参数 在 try...except 语句中不指定异常类型 关于字典的冗余代码 使用 flag 变量而不是 for ... else 过度使用元组解包 在任何地方使用import * 文件操作 使用 class...

蓝三金的博客 986

C# Log4Net不输出日志的解决方法

log4net是一个流行的 .NET 日志框架,用于记录应用程序的日志信息。如果你在使用log4net。

精通搬砖,资深技术砖家,在软件开发,人工智能,设备开发等领域都有研究。商业合作&交流学习可私信联系。 1263

程序员偷偷深爱的 9 个不良编程习惯

我们曾经都做过这样的事情:当妈妈不注意的时候,偷偷地吃糖果零食,然后导致有了蛀牙。同样的,我们都违背过一些编程的基本规则,并且都会坚定地表示这种行为是不可取的。但我们就是...

哲洛不闹的专栏 1163

GEE开发之ERA5(气温、降水、压力、风速等)数据获取和分析

前言:ERA5主要提供DAILY和MONTHLY两大类别数据,其中主要包括气温、降水、压力、风速等。

等待着冬天的风的博客 3万+

AI 生成 CAN 通信测试用例实战

本文分享了AI辅助汽车电子测试用例编写的实战经验。通过某车企CAN网络测试项目案例,对比传统方式(需27天)与AI辅助方式(仅5天)的效率差异,展示81%的效率提升。文章详细介绍了从DBC文件提取信号信息的方法,包括DBC文件结构解析、信号定义说明,并提供了完整的Python解析脚本代码,可将信号信息导出为JSON或Excel格式,为后续AI批量生成测试用例奠定基础。

小明的博客 693

python 捕获键盘_Python操作的5个坏习惯,你中了几个呢?

前言很多文章都有介绍怎么写好 Python,我今天呢,相反,说说写代码时的几个坏习惯。有的习惯会让 Bug 变得隐蔽难以追踪,当然,也有的并没有错误,只是个人觉得不够完美。注意:示例代码在 Python 3.6 环境下编写1 用列表作函数的默认参数看下面这个例子正常我们期望的结果应该是这样的但当我们执行代码后,只会得到这样的结果与预期不一致。为什么呢?因为 Python 列表是可变对象,...

weixin_39892460的博客 153

智能座舱(七)——智能音频系统

本文剖析车载智能音频系统的核心技术,聚焦音响、功放、麦克风和广播收音机四大组件。音响系统通过多声道布局(如23扬声器阵列)结合动态声场校准算法,实现三维声场覆盖;功放系统采用高效D类技术,支持OTA音效调整和故障自愈;麦克风阵列运用波束成形技术实现精准拾音,并保障隐私安全;广播系统融合数字与网络技术提升音质。核心在于硬件标准化与算法差异化的协同,未来将朝集成化、AI个性化方向发展。

DC20160101的博客 1573

Python 操作几个坏习惯,你中了吗?

很多文章都有介绍怎么写好 Python,我今天呢,相反,说说写代码时的几个坏习惯。有的习惯会让 Bug 变得隐蔽难以追踪,当然,也有的并没有错误,只是个人觉得不够完美。 注意:示例代码在 Python 3.6 环境下编写 1 用列表作函数的默认参数 看下面这个例子 正常我们期望的结果应该是这样的 但当我们执行代码后,只会得到这样的结果 与预期不一致。为什么...

python学习者的博客 605

夜间灯光遥感数据介绍及下载汇总

夜间灯光遥感数据介绍及下载汇总

qq_43874102的博客 1万+

飞牛 NAS 部署 Hermes Agent 全指南:打造 24 小时在线、自我进化的 AI 智能体!

当大多数人还在把 AI 当聊天机器人使用时,我已经把它部署到了家里的飞牛 NAS 上,让它 24 小时在线工作、记忆我的习惯、自动执行任务,甚至还能不断学习新的技能。今天带你从零搭建这个真正属于自己的 AI Agent。🚀

XiaoqiangClub的博客 1227
上一篇: 可能是最强的Python可视化神器,建议一试!
下一篇: 一文带你搞懂,Python语言运算符
网络安全_入门教程
博客等级 码龄4年 1万+粉丝 2151原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值