岁月博客

  • 首页
  • 跨境电商
  • 技术文档
  • 软路由虚拟化
  • 服务器技术
  • VPS
  • 羊毛
    • 羊毛
    • 自助薅京豆系统
岁月博客
致力于关注网络安全与黑客文化,专注网络技术的分享与交流。
  1. 首页
  2. 技术文档
  3. 正文

面向初学者的顶级 Python 编码最佳实践

2022年4月22日 201点热度 0人点赞 0条评论

2022 年 3 月,Python 成为最流行的编程语言,成为编程界的头条新闻。在多年徘徊在前列之后,它终于超越了 Java 和 C,登上了TIOBE 指数的第一名。

那么为何不?毕竟,它是如此有趣和强大的语言。它快速、用户友好、开源,并且拥有一个由全球数百万程序员组成的社区。

然而,无论一门语言多么平易近人,如果程序员不能有效地利用它的优点,那它就毫无价值。对于初学者 Python 程序员来说尤其如此,他们往往对做什么和去哪里感到困惑。

在本文中,我们汇总了十个重要的 Python 最佳实践,不仅初学者,而且经验丰富的程序员也可以参考提升自己的技能。

初学者磨练技能的 10 大 Python 编码最佳实践

在这里,我们列出了您应该知道的十个最常见但最必要的 Python 编码最佳实践。

1. 通过命名约定提高代码可读性

当作为一名 Python 程序员或任何语言的程序员开始时,代码可读性是一个人应该始终确保的事情。代码可读性确保一段代码不仅易于检查,而且清楚地说明其目的。

锻炼代码可读性的一种可靠方法是遵循语言的命名约定,Python 也不例外。

在这里,我们有一些 Python 的基本命名约定,每个 Python 开发人员都应该使用这些约定来编写可读的代码。

  1. 变量名应该描述它们的用途并且只包含字母和数字,没有特殊字符。在长变量名的情况下,您应该使用下划线。例如,您应该写 temp_in_celsius,而不是写 temperatureincelsius。

    此外,由于变量名区分大小写,因此不应将 th 与 Th 互换。并且不要使用 del、class、for 等 Python 关键字作为变量。

  1. 为类指定名称时,应使用 CamelCase。另外,不要在类名中使用下划线。

  1. 对于方法,应该使用小写字母,并在长方法名称中使用下划线作为分界词。

  1. Python 函数名称应为小写。使用下划线分隔单词。

  1. Python 文件名、包名、对象名和模块名应该简洁,小写,如果需要,使用下划线分隔单词。

  1. Python 常量应始终大写。

  1. 要将变量声明为私有或受保护,请分别在其名称中添加双下划线或单下划线。例如,_day 是一个受保护的变量,而 __day 是一个私有变量。

2. 使用 Idiomatic Python 以 Python 方式编写代码

惯用 Python 在技术上是指遵循特定编程习惯的 Python 代码,以实现更快的执行速度和更高的可读性。然而,多年来,由于 Python 程序员对代码可读性(这很好)的痴迷,定义中包含了另一个因素 - 美学。因此,Idiomatic Python 或 Pythonic 代码是一种健壮、可读、精确且美观的 Python 代码。

Pythonic 代码对于从其他编程语言转向 Python 但仍未放弃其编程特质的程序员来说是一个基本概念。

例如,查看以下 Python 代码:

import random
n = ['cool','hate','love','song','tea']; m = random.choice(n); print (m)

编写此代码以从存储在变量“n”中的五个字的数组中输出任何随机字。尽管它确实产生了预期的结果,但它看起来复杂且难看。

如果我们改为这样写:

import random

n = ['cool','hate','love','song','tea']

m = random.choice(n)

print (m)

它看起来很整洁,很好地传达了它的目的。

3. 重视正确的文档和评论

注释和文档是 Python 编码的另外两个方面,初学者应该学习和掌握。为什么?因为虽然这两个术语与实际的编码过程几乎没有关系,但它们向读者传递了大量关于代码目的和逻辑的信息。

评论:

在 Python 中,注释或代码注释是对一段代码(一行或一个块)的基本描述。当用户、维护人员、开发人员甚至是您正在检查代码的未来时,这些描述会派上用场。

与许多其他编程语言一样,Python 注释以 # 符号开头。PEP8是官方认可的 Python 指南文档,它指出注释的长度不应超过 72 个字符。因此,如果您的程序要求您编写冗长的注释,请使用多行来编写注释。

以下示例展示了 Python 注释的工作原理:

# A program to convert temperature values from Fahrenheit to Celsius

fah = float(input("Temperature in Degree Fahrenheit: "))

cel = ((fah-32)*5)/9

print ('Temperature in Degree Celsius: %f' %(cel))

文档:

根据 Python 的创建者 Guido van Rossum 的说法,代码的阅读次数多于编写次数。因此,对于程序员来说,为任何潜在的读者或用户保持其代码的易读性变得至关重要。这就是文档的重要性所在。

文档是指准确而清晰地说明 Python 项目代码库的目的、规范、技术要求和任何辅助信息。

在 Python 中,文档职责分配给文档字符串或文档字符串。Docstrings 可以很容易地将方法、函数、类等与它们各自的文档联系起来。

以下示例解释了 Python 中文档字符串的功能:

def sleep(name):
    """ An understandable description of the function goes here """
    print(f"Goodnight {name}, I am going to sleep")
    
sleep("Jenny")

正如您在此处看到的,文档字符串使用三重“双”引号来封装相关文档。

为了检索特定代码模块、类、函数或关键字的文档,Python 具有内置的 help() 和 __doc__ 属性。以下示例显示了这些属性的作用。

def bye(person):
    """ The Bye function sees off a person """
    print("See You Tomorrow, " + person + "!")
    
person = input("Enter your name: ")

bye(person)
print(bye.__doc__)

在这段代码中,执行时,最后一条语句输出,“Bye 函数送人。”

<显示 help(str) 命令输出的图像>

PS 与注释类似,文档字符串也遵守PEP257中规定的特定文档约定。

def bye(person):

    print("See You Tomorrow, " + person + "!")
    
person = input("Enter your name: ")

bye(person)
print(bye.__doc__) */

4. 使用虚拟环境

虚拟环境基本上是 Python 的独立版本,包括 Python 解释器、脚本和库。

当 Python 程序员想要使用不同版本的 Python 或具有不同依赖项的项目时,他们会使用虚拟环境。例如,当使用第三方 Python 库时,可能会出现新的更新更改原始库函数,使其无法用于项目的情况。在这种情况下,启动虚拟环境并事先验证库的功能会大有帮助。

虚拟环境是所有初学者都应该熟悉的 Python 编码方面。

5. 从事模拟真实世界场景的项目

当涉及到学习编程而不是任何特定语言时,编码项目在向所有业余爱好者教授基本知识方面有很长的路要走。

他们不仅恳求学习者运用他们迄今为止所学的技能,而且为他们提供一个锻炼创造力的平台。

然而,从长远来看,选择任何随机的练习项目都可能对学习过程有害。选择不相关的项目,并且以无组织的方式进行,可能会使学习者士气低落(如果项目远远超出他们当前的水平)或使他们陷入死胡同(如果他们选择过时的项目)。

因此,初学者应该只选择那些逐渐测试他们的技能提升并提供有价值的真实场景的编码项目。

6. 在 Range() 上使用 Enumerate()

Python 编程使代码更具 Pythonic 的另一个方面是它的美学吸引力。资深的 Python 程序员在编写代码时,要确保他们的代码不仅易于阅读,而且美观。

按照这个叙述,我们带来了 enumerate() 与 range() 的困境。

当用户想要遍历整数或字符串列表时,range() Python 函数会派上用场。看下面的例子就明白了。

for n in range(50):
    k = n+1
    print (k)

#output will be a vertical list of numbers from 1 to 50

但是,如果您想检查您的函数在迭代器上循环的次数或想在输出中添加自动索引,您会怎么做?

您可以执行以下代码:

import string

word_list = ["eat", "sleep", "read", "repeat"]
for i in range(len(word_list)):

    words = word_list[i]
    print ("I want to ")
    print(f"{i}: {words}")

上面的代码按预期工作。然而,如果你把它展示给任何有经验的 Python 程序员,他们会说它不是 Pythonic。

现在让我们使用 enumerate() 函数来比较一下它的表现。

import string

word_list = ["eat", "sleep", "read", "repeat"]

for i, words in enumerate(word_list):

    print ("I want to ")
    print(f"{i}: {words}")

好吧,我们在这里看到了什么?行数减少了,而输出与前面的代码相同。此外,如果您观察到,代码看起来更有吸引力、更清晰,并且在没有任何文档的情况下解释了其用途。

因此,如果您想美化您的迭代代码,同时保持其功能完整,您应该使用 enumerate()。而且,如果您要添加索引但不想为其单独编写代码。

7. 犹豫是否创建过多的全局变量

全局变量是意外的恶棍,他们受到的抨击多于功劳。这是可以理解的,因为全局变量可以在程序的任何地方调用。因此,这些变量很有可能通过在不知不觉中被调用而改变许多函数的工作,引入难以追踪的错误,并且在某些极端情况下,导致意大利面条式代码。

因此,程序员应该注意减少全局变量的数量并不断检查它们,以免滥用它们的值。

8. 利用模块化代码

Python 是一种高度模块化的编程语言,这意味着可以将 Python 代码库划分为 Python 代码的多个模块,每个模块包含函数、变量、方法、类等。然后这些模块可以相互链接以构建程序。

Python 中代码模块化的概念使程序员能够通过将大型代码库简化为模块来简化其复杂性。然后这些模块可以结合使用或独立使用。

模块化编码还增加了代码的可重用性,因为程序员可以导入相关模块,而不是从头开始编写函数。

Python 还拥有一个存储库,其中包含许多模块和库,其中包含程序员可以用来减轻编码负担的 Pythonic 代码。

import math

print ("Enter a number: ")
x = input()
y  = math.sqrt(int(x))
z  = math.factorial(int(x))
print ("The Square Root of the above number is: ", y)
print (z)

9.返回变量少?一次返回多个值

如果您的程序的返回值数量有限,例如三个或四个,我们建议您尝试一次返回多个值。以下程序显示了如何执行此操作:

import math

def maths():

    x  = math.sqrt(int(25))
    y  = math.factorial(int(5))
    return x,y;
    
x, y = maths()
print (x,y)

但是,如果返回值的数量超过四个,您应该求助于字典或数据类。

10. 尽快处理损坏的代码!

如果被忽视,损坏的代码可能会从一个小问题变成一个复杂、难以追踪和难以修复的问题。因此,程序员应该注意定期检查他们的代码是否存在任何不一致并对其进行调试以获得最佳性能。

处理损坏代码的最佳方法是开发代码检查例程。由于代码不仅会因人为错误而中断,而且还会因依赖项或环境的变化而发生变化,因此程序员必须密切关注他们的代码库。而且,当他们确实检测到错误代码补丁时,他们不应该将补救措施推迟到以后。

我们知道这一切听起来太明显了,但有时,即使是基本要求也会被忽视并增加为无法弥补的问题。 

结论

每种编程语言都有其程序员需要与之相处的一组特性。和 Python 并没有什么不同。然而,Python 编码的某些方面,比如编写漂亮的代码、遵循预设的代码布局等,即使是最坚忍的人也会不知所措。

以上 Python 最佳实践列表涵盖了理想 Python 编码的大部分(如果不是全部)必要条件。现在剩下的就是让你检查它们并将它们适应你的编程例程,并成长为一个伟大的 Python 程序员(我们相信你会做到的)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请及时联系我们qq邮箱:1107996578@qq.com,一经查实,本站将立刻删除。

标签: 暂无
最后更新:2022年4月22日

岁月

以梦为马,随处可栖

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

岁月

以梦为马,随处可栖

最新 热点 随机
最新 热点 随机
抖音是什么平台,抖音平台基本属性介绍 抖加投放技巧以及注意事项,抖音dou+详细的投放攻略 抖音id怎么修改,抖音用户名修改教程 ipad抖音怎么设置横竖屏,平板横竖屏的设置教程 抖音浏览量突然猛涨怎么回事,抖音播放突然增多的原因 fiddler创建根证书不成功解决方案--岁月博客提供
linux一次性执行多个命令(如何在Linux终端中一次运行多个命令) GeoIp2是什么,博客开启GeoIP2服务 防止CDN后的源站IP泄漏的几种方法 把域名跳转网站怎么弄(域名跳转的方法分享) 给服务器安装panel空间控制面板,kangle+easypanel Facebook、亚马逊、Ins防封技巧(跨境电商引流软件防封指南)
分类
  • VPS
  • 技术文档
  • 新闻
  • 服务器技术
  • 未分类
  • 羊毛
  • 跨境电商
  • 软路由虚拟化
最近评论
kkkki 发布于 9 个月前(07月05日) 100好像可以开韩国了把,我今天误打误撞开成功了
kiritoghy 发布于 10 个月前(05月26日) 想问一下如果azure for students开B1S+64G SSD就是免费的吗,不会扣100刀...

COPYRIGHT © 2022 岁月博客 ALL RIGHTS RESERVED.

豫ICP备2022005050号