6个必知必会高效python编程技巧

我爱Python数据挖掘 我爱Python数据挖掘     2023-01-17     221

关键词:

编写更好的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 代码。请记住始终努力使代码简单明了,并遵循既定的最佳实践和指南。

5个必知必会的python数据合并技巧(代码片段)

大家好,前不久在我们技术交流群有群友提到最近他面试阿里70万总包的数据岗位,对方问Pandas的5种数据合并的函数,结果他只答出了2个。那么,究竟是哪五个呢?今天,我们就来带大家了解一下!想... 查看详情

省时提效!5个必知必会的sql窗口函数!(代码片段)

SQL是数据世界中的通用语言,是作为数据科学人员必备技能。它之所以如此重要,是因为许多数据探索、数据操作、管道开发和仪表板创建都是通过SQL完成的。想要利用SQL高效处理数据任务,掌握一些窗口函数非常有... 查看详情

10个必知必会的统计学问题

...么?假设检验的内涵和步骤?这篇文章带你来看10个必知必会的统计学问题。正文来源:计量经济学1、问:自由度是什么?怎样确定?答:ÿ 查看详情

elasticsearchelasticsearch25个必知必会的默认值

1.概述转载:https://elastic.blog.csdn.net/article/details/106464359题记:技术交流群中有小伙伴提及:“es节点默认1000个分片的限制”?这引发了我对Elasticsearch默认值的关注。我一搜不要紧:聊天记录中涉及“默认”关... 查看详情

好奇?!elasticsearch25个必知必会的默认值

题记:技术交流群中有小伙伴提及:“es节点默认1000个分片的限制”?这引发了我对Elasticsearch默认值的关注。我一搜不要紧:聊天记录中涉及“默认”关键词的讨论接近400多处。这些默认值对于架构选型、开发实战、运维排查... 查看详情

持续更新,建议收藏python必知必会的知识点,极大提升开发效率(代码片段)

问题本文主要介绍Python编程的一些必知必会的知识点,方便后续编程,提升效率。方法字符串转整数#字符串是普通整数a=int('1000')print(a)#1000#字符串是二进制b=int('1000',2)print(b)#8#整数转固定长度的二进制... 查看详情

持续更新,建议收藏python必知必会的知识点,极大提升开发效率(代码片段)

问题本文主要介绍Python编程的一些必知必会的知识点,方便后续编程,提升效率。方法整数列表join设有一个整数列表,实现连接所有整数形成一个字符串,如下:d=[1,2,3,4]print(''.join(d))很遗憾,上... 查看详情

elasticsearch必知必会的干货知识二:es索引操作技巧(代码片段)

该系列上一篇文章《Elasticsearch必知必会的干货知识一:ES索引文档的CRUD》讲了如何进行index的增删改查,本篇则侧重讲解说明如何对index进行创建、更改、迁移、查询配置信息等。仅创建索引:PUTindexPUT/index添加字段设置(mappings... 查看详情

linux编程之信号篇:异常监控必知必会

文章目录为什么要了解信号什么是信号信号有哪些如何发送/捕获信号发送killraisekillpgsigqueue监听signalsigaction信号处理函数的注意事项信号阻塞总结Thanks为什么要了解信号信号是UNIX系统进程管理非常重要的一环,下面这些场景都... 查看详情

必知必会jvm垃圾回收——对象搜索算法与回收算法

垃圾回收(GC)是JVM的一大杀器,它使程序员可以更高效地专注于程序的开发设计,而不用过多地考虑对象的创建销毁等操作。但是这并不是说程序员不需要了解GC。GC只是Java编程中一项自动化工具,任何一个工具都有它适用的... 查看详情

必知必会jvm垃圾回收——对象搜索算法与回收算法

垃圾回收(GC)是JVM的一大杀器,它使程序员可以更高效地专注于程序的开发设计,而不用过多地考虑对象的创建销毁等操作。但是这并不是说程序员不需要了解GC。GC只是Java编程中一项自动化工具,任何一个工具都有它适用的... 查看详情

springmvc--必知必会(代码片段)

  SpringMVC基于模型--视图--控制器(Model-View-Controller,MVC)模式实现,属于SpringFrameWork的后续产品,已经融合在SpringWebFlow里面。它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无需实现任何接口。同时它还支持... 查看详情

es6必知必会——class

1.在之前的JS面向对象编程中,如果定义一个构造函数,一般来说是这样:functionPerson(name,age)this.name=name;this.age=age;Person.prototype.say=function()return‘Mynameis‘+this.name+‘,Iam‘+this.age+‘yearsold‘;这种写法跟传统的面向对象语言(比如C++... 查看详情

zookeeper必知必会的知识点

ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接... 查看详情

大数据必知必会:hadoop高可用集群安装(代码片段)

(大数据必知必会:Hadoop(4)高可用集群安装)安装前准备高可用集群环境下,至少需要3台服务器,这里准备5台。IP地址主机名称角色10.0.0.5node1JournalNode、NameNode、ResourceManager10.0.0.6node2JournalNode、NameNode、ResourceManager10.0.0.7node3Journa... 查看详情

es6必知必会——promise对象

Promise对象1.Promise对象是ES6对异步编程的一种解决方案,它有以下两个特点:Promise对象代表一个异步操作,它只有三种状态:Pending(进行中)、Resolved(已完成,又称Fulfilled)和Rejected(已失败),并且该状态不会受外界的影响Pr... 查看详情

泥瓦匠聊并发编程:线程与多线程必知必会(基础篇)

本文目录线程与多线程线程的运行与创建线程的状态1线程与多线程线程是什么?线程(Thread)是一个对象(Object)。用来干什么?Java线程(也称JVM线程)是Java进程内允许多个同时进行的任务。该进程内并发的任务成为线程(Thr... 查看详情

多线程必知必会的知识点

1)现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可以用join方法实现。2)... 查看详情