Python编程技巧分享:6 个必知必会高效 Python

news2024/11/16 12:49:09

编写更好的Python 代码需要遵循Python 社区制定的最佳实践和指南。遵守这些标准可以使您的代码更具可读性可维护性效率

本文将展示一些技巧,帮助您编写更好的 Python 代码

遵循 PEP 8 风格指南

PEP 8 是 Python 代码的官方风格指南。它提供了一组用于格式化代码的准则,例如如何缩进、如何使用空格以及如何命名变量。遵循这些准则将使您的代码更加一致且更易于阅读。下面为您提到一些。

1.遵守 PEP 8 命名约定

Python PEP 8(Python 增强提案 8)提供了一些关于 Python 代码应该如何格式化或样式化的建议。如果你想编写 Pythonic 代码,你应该尝试遵循这些样式约定(简而言之,“pythonic”描述了一种编码风格,它利用 Python 的独特功能来编写可读且美观的代码)。

让我们看一下在编写代码时应该遵循的一些策略:

  • 变量名——变量名只能包含小写字母,名称中的任意两个单词用下划线分隔。例如,如果您想将一个变量命名为“员工姓名”,这里有一些方法可以做到这一点

  •  

  • 函数名——如果有多个单词,函数名应该只包含小写字母并用下划线分隔。包括任何大写字母

  • 类名——如 PEP 8 中所述,所有类名都应以大写字母开头。如果名称中有两个词,请使用 Cap-Words 约定。这意味着您应该以大写字母开头每个单词。它们不应该是单词之间的空格

  • 最大行长度——您的代码应该易于阅读,因此应避免不必要的长代码行。PEP 8 建议您的代码行不应超过 79 个字符。

2. 使用描述性的和有意义的变量名

编写可读代码的关键之一是使用描述性和有意义的变量名。这将使其他人更容易理解您的代码,并让您在稍后回过头来看您的代码时记住每个变量代表什么。

在 Python 中,我们为对象指定变量。

简单地说,变量是指向对象的指针。调用变量为我们提供了对对象的访问。在 Python 中,如果它们不会产生错误,我们可以创建不同类型的变量名。因为变量名不会导致错误并不意味着使用它是最佳实践。

由于变量用作对对象的引用,因此最好让变量的名称描述它们所持有的对象。例如,如果您有一个员工姓名列表,将变量命名为“x”可能方便又容易,但这不是好的做法。请参阅下面的代码:

尽管这段代码在没有地址的情况下执行,但它是一种糟糕的编程习惯,因为“x”没有指定变量持有的对象类型。如果您的脚本有很多代码,您将很难弄清楚“x”指向的对象变量是什么。

这种命名变量的方法使得调试程序变得困难。变量的名称应该试图识别它所指向的对象的类型。鉴于它标识了列表中的信息,名称“employee_names”作为变量名在很大程度上是不言自明的。它比名称“x”更具描述性。看下面的代码:

3. 谨慎使用行内注释

虽然注释对于解释复杂或令人困惑的代码很有用,但不要过度使用它们很重要。过多的注释会使您的代码混乱且难以阅读。相反,尝试通过使用清晰简洁的变量名称并编写干净且结构良好的代码来使您的代码不言自明。

以下示例说明了内联注释:

4.使用列表理解

假设你有一个数字列表,你想返回所有可被 2 整除的数字;您可以使用 for 循环语句或列表理解。

让我们用代码来解释一下。我们将从一个 for 循环语句开始。

现在,让我们将此解决方案与列表推导一起应用。

 

你有没有注意到上面的列表理解只需要一行代码就可以完成同样的任务?

通过列表理解,我们不必生成空列表或使用列表方法 append()。列表理解简洁,使我们的代码更具可读性。在大多数情况下,它也比常规的 for 循环语句更高效

5.使用Join()方法连接字符串

如果你有一个要连接的字符串列表,你有两种选择——你可以使用连接“+”运算符或字符串方法“join”。

在下面的代码中,我们使用“+”运算符将字符串列表组合在一起

当我们遍历列表时,在上面的代码中应用“+”运算符将字符串列表连接到 new_string 变量。为了合并字符串之间的空格,我们在末尾连接一个空字符串(“”)。

您可以看到代码运行良好。然而,这种方法的内存效率不高。

这是因为字符串的种类。由于字符串是不可变的,因此在创建新对象时尝试组合它们的结果。每次我们调用“+”运算符,都必须为创建的对象分配内存。这使得该方法变得无趣,并且对于较大的字符串会变慢。

然而, join() 方法并非如此。这是因为 join() 方法只为最终对象分配内存。这使得此方法在连接更大的字符串时更快。因此,下面的代码通常更快、更简洁。

6.使用描述性的函数和方法名

与使用描述性变量名类似,使用描述性函数和方法名可以使您的代码更易于理解和维护。如果你有很长或很复杂的函数,如果没有上下文就很难理解,这一点尤其重要

通过遵循这些提示,您可以编写更易于阅读、维护和理解的更好的 Python 代码。请记住始终努力使代码简单明了,并遵循既定的最佳实践和指南。

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

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

相关文章

Maven parent多项目打包找不到reversion变量问题

项目结构:packagetest:顶级父级c1:子项目(web项目)c2:子项目(jar包)c1依赖c2的jar包。在父级maven中deploy成功,package也成功,私服上有都有包了。但是在c1上package的时候&#xff…

二十、操纵管道

本章将讨论如何在应用程序中使用多种方式操作管道。本章的部分内容都是很底层的,所以在开始阅读之前,请确保你需要一些编程知识,并对GStreamer有很好的理解。 这里将讨论的主题包括如何从应用程序向管道中插入数据,如何从管道中读…

电商项目之Mailgun邮件退信率升高

文章目录1 项目背景2 前言3 采取的措施4 排查的思路5 原因6 技术实现方案1 项目背景 运维人员进行日常巡检发现Mailgun邮件代发渠道的退信率不寻常,在某个时间段会飙高。这会有2个影响: (1)针对运维的角度,Mailgun官方…

3.SpringBoot配置

一、IOC的好处在对象依赖关系复杂的对象中,只需要考虑“我自己”依赖什么,减少程序员思考负担方便的进行依赖概念(接口、抽象类)的实现类对象的替换。二、什么是SpringBoot?1.SprigBoot是Spring的一个子工程,目标就是…

JS逆向技巧汇总---给普通爬虫学习者的吐血建议

爬虫实战的JS逆向,就像是做侦探。很多时候,我们要尝试不同方式和手段寻找线索,不能放过蛛丝马迹,通过仔细观察和比较,然后顺藤摸瓜,找到加密入口。再调试JS代码的时候,需要保持清晰的目标和方向…

专科逆袭入职腾讯,真是小母牛坐飞机,牛逼上天了..

在踏入腾讯,办理入职手续的那一天,作为一个男子汉,确实是落泪了。特地分享一波我的真实经历,共勉。 先说一下自己的个人情况,18 届应届生,通过校招进入到了国内某二线城市传统互联网公司,然后一…

优化算法:曲径步长通优处,优化半天白优化

本文来自公众号“AI大道理” 训练一个神经网络,我们想要得到误差最小,就是要我们的损失函数最小。 如何得到最小值呢? 这就是优化算法。 梯度下降法是众多优化中的一种。 1、损失函数 2、GD(梯度下降法) 3、BGD&a…

Java集合基础

文章目录集合基础一、集合介绍1. 什么是集合&#xff1f;2. 集合类型3. ArrayList 长度可变原理4. 集合和数组的使用选择二、ArrayList 集合快速入门集合创建语句泛型(<>)三、集合常用成员方法1. 增加元素2. 删除元素3. 修改元素4. 查找数据四、集合遍历1. 集合存储字符串…

国联易安:2023年网络安全“五大技术”预测

我国对网络安全非常重视&#xff0c;明确指出“安全是发展的前提&#xff0c;发展是安全的保障&#xff0c;安全和发展要同步推进”。作为国内专注于保密与非密领域的分级保护、等级保护、业务连续性安全和大数据安全产品解决方案与相关技术研究开发的领军企业&#xff0c;国联…

数学建模与数据分析 || 3. 面向数据的特征提取方法: 探索性数据分析

面向数据的特征提取方法: 探索性数据分析 文章目录面向数据的特征提取方法: 探索性数据分析1. 原始数据的准备1.1 导入 python 模块1.2 导入数据集并进行宏观认识1.3 数据集描述2. 数据的预处理2.1 缺失数据的甄别2.2 类别规模的评估3. 数据特征的处理3.1 第一个因变量- 分析范…

【Linux】Linux调试器-gdb使用

作者&#xff1a;小卢 专栏&#xff1a;《Linux》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 1.背景 2.gdb的使用 2.1如何生成可以调试debug版本的文件&#xff1a; 2.2如何查看调试信息&…

wcf服务启动禁用Wcf测试客户端(WcfTestClient)

以下页面在WCF工程运行时&#xff0c;会自动启动wcf测试客户端。如果想禁止&#xff0c;可以通过这个方法。 如果希望F5时始终启动IE&#xff0c;可以在.csproj.user文件里增加EnableWcfTestClientForSVC属性配置以禁用WCF测试客户端&#xff1a; <Project> <ProjectE…

Excel等文件中出现新型恶意软件Dropper,通过钓鱼邮件传播

Dropper 是将 Payload 部署到失陷主机的恶意软件&#xff0c;被很多攻击者使用。2022 年第二季度研究人员发现了一些活跃的 Dropper&#xff0c;例如 Microsoft Excel 文件以及 Windows 快捷方式文件和 ISO 文件。通过与社会工程相结合的攻击方式&#xff0c;诱使受害者触发失陷…

打脸质疑者!Mobileye市值冲高,公司CEO说出心声

三个多月前&#xff0c; Mobileye以21美元发行价第二次在美股IPO上市。截止上周五&#xff0c;该公司股价升至32.98美元&#xff0c;市值达到264.47亿美元。相比于美股其他自动驾驶公司股价跌跌不休&#xff0c;显然&#xff0c;资本市场更看重企业的盈利能力和可预见的营收规模…

CVE-2023-24055漏洞复现

KeePass download | SourceForge.net 下载链接 直接咔咔安装 默认路径&#xff1a; 先汉化一下 汉化文件放进去 切换到 KeePass&#xff0c;单击 View → Change Language&#xff0c;然后选择您的语言。重新启动 KeePass 汉化成功。建立新数据库&#xff1a; 文件默认命名为…

HTTP协议详细解读

文章目录1. HTTP概念2. HTTP 特点3. HTTP 协议的工作过程4. 认识URL5. HTTP 请求数据格式6. HTTP 响应数据格式7. 总结&#x1f4c2;橙子精品文章学习推荐1. HTTP概念 HTTP&#xff1a;HyperText Transfer Protocol&#xff0c;超文本传输协议。HTTP 协议规定了浏览器和服务器…

Vue中的 v-show 和 v-if 的区别

一、v-show与v-if的共同点 我们都知道在 vue 中 v-show 与 v-if 的作用效果是相同的(不含v-else)&#xff0c;都能控制元素在页面是否显示 在用法上也是相同的 <Model v-show"isShow" /> <Model v-if"isShow" /> 当表达式为true的时候&…

【微信小程序】webview使用、限制、扩展说明

0 说明 只是一些我自己常见的用法的整理和说明 更多用法还是请看官方文档&#xff1a;web-view 1 小程序web-view支持的页面 1、关联公众号的文章页【活动、文章、引导关注】 2、服务器配置了微信安全校验文件的网页【需要放置在域名根目录下】 2 小程序web-view不支持的页面…

Maxtang大唐英特尔12代J6412无风扇双网口迷你主机真实评测

今天为大家评测一款无风扇的双网口迷你主机&#xff0c;这款主机来自于maxtang大唐采用了英特尔12代赛扬J6412处理器&#xff0c;产品最出彩的地方就是它的网络配置&#xff0c;不仅拥有双千兆网口&#xff0c;还搭载了SIM卡插槽&#xff0c;并支持4G上网。评测产品配置如下&am…

蓝桥杯-玩具蛇

没有白走的路&#xff0c;每一步都算数&#x1f388;&#x1f388;&#x1f388; 题目描述&#xff1a; 已知一个4x4的方格&#xff0c;和一个16个单位长度组成的玩具蛇&#xff0c;即蛇头&#xff0c;蛇身&#xff0c;蛇尾的长度总共是16&#xff0c; 假设蛇的一节在方格中的…