写点什么

爱上 Python 的五个理由

  • 2019-11-07
  • 本文字数:2564 字

    阅读完需:约 8 分钟

爱上Python的五个理由


关于 Python 有太多值得去爱的地方了,简单、干净、强大的 Python 语言让任何开发人员都有足够的能力在他们的软件开发生涯中充满自信,我们可以从中寻找到使用编程语言的乐趣,阅读本文,你会喜欢上使用 Python 的。


Python 中有很多我喜欢的特性。


Python 在 1998 年诞生,开始很长一段时间无人问津,但我一直在使用它。当时Perl在开源世界中非常流行,但是我从一开始就认定了 Python。我父母喜欢经常拿我之前说的话打趣我,我曾经说过“Python 将会成为很重要的语言”、“我未来将依靠 Python 找到一份工作”。过了一段时间,我的预言应验了。


这门语言有太多让人喜爱的地方了。以下是我如此热爱 Python 的 5 个最重要的原因(用反序的方式表述,以构建预期)。

5. Python 读起来像可执行的伪代码

伪代码是这样一种概念,它不遵循特定语言的确切句法和语法来编写编程逻辑。自从成为一名 Python 程序员以来,我已经几乎不怎么编写伪代码了,因为它的实际设计满足了我的需要。


即使您不太了解 Python 语言,也可以很容易地阅读它,这在很大程度上是由设计决定的。


Python 对代码格式中的空白规定是出了名的。空白对于任何语言都是必需的——它能够让我们区分出句子中不同的单词。大多数语言都有关于空格用法的建议或“最佳实践”,但是 Python 大胆地要求标准化。对我来说,这使得阅读代码并准确地看到它在做什么变得非常简单。


例如,下面是一个经典冒泡排序算法的实现。


def bubble_sort(things):
needs_pass = True
while needs_pass:
needs_pass = False
for idx in range(1, len(things)):
if things[idx - 1] > things[idx]:
things[idx - 1], things[idx] = things[idx], things[idx - 1]
needs_pass = True
复制代码


现在让我们将其与Java中的实现进行比较。


public static int[] bubblesort(int[] numbers) {    boolean swapped = true;    for(int i = numbers.length - 1; i > 0 && swapped; i--) {        swapped = false;        for (int j = 0; j < i; j++) {            if (numbers[j] > numbers[j+1]) {                int temp = numbers[j];                numbers[j] = numbers[j+1];                numbers[j+1] = temp;                swapped = true;            }        }    }    return numbers;}
复制代码


我知道 Python 需要缩进来表示块的嵌套。虽然我们的 Java 示例也很好地使用了缩进,但这不是必需的。花括号决定块的开始和结束,而不是间隔。因为 Python 使用空格作为语法,所以在其他代码中不需要开始{和结束}符号。


Python 还避免了对分号的需求,分号是使其他语言可读的语法规则。读起 Python 我感觉更舒服一些,它很像伪代码,有时会让我惊讶到都意识不到可运行的代码是什么样的了!

4. Python 有强大的原函数

在编程语言设计中,原函数是最简单的可用元素。Python 易于阅读这一事实并不意味着它是一种强大的语言,另一方面要归功于它对原函数的使用。我最喜欢的使 Python 既易于使用又高级的例子是它的生成器概念。


假设您有一个简单的二叉树结构,包含 value、left、right。您希望按顺序轻松地对其进行迭代。您通常会寻找“小”元素,以便在找到正确的值时立即退出。到目前为止,这听起来很简单。然而,有很多种算法可以对元素进行操作。


其他语言会让你写一个访问者,这样你可以在这个函数中判断“这是正确的元素吗?”你也可以在 Python 中这样做,但你也不必一定这样做。


def in_order(tree):
if tree is None:
return
yield from in_order(tree.left)
yield tree.value
yield from in_order(tree.right)
复制代码


这个生成器函数将返回一个迭代器,如果在 for 循环中使用该迭代器,那么它将只执行需要的部分,而不会执行全部。这是很强大的。

3.Python 标准库

Python 有一个很棒的标准库,其中隐藏了许多我以前不知道的宝贵内容,直到我花时间遍历了所有可用函数、常量、类型等等的列表,我才有了大体的了解。我个人比较喜欢的是 itertools 模块,但是更喜欢函数式编程模块(是的,Python支持函数式编程!)。


拿你的技术面试官开玩笑是很有趣的。例如,这有个应对FizzBuzz这个经典面试问题的小妙招:


通过网络搜索后会发现这并不是解决 FizzBuzz 的最直接的方法,但它确实很有趣!


除了趣味之外,itertools 模块以及 heapq 和 functools 模块都是 Python 实现中默认提供的很有价值的东西。

2. Python 的生态系统是庞大的

对于标准库中没有的很多东西,有一个巨大的生态系统来支持新的 Pythonista,从令人兴奋的包到专门针对该语言的文本编辑器插件都有。PyPi 上托管了大约 200,000 个项目(在撰写本文时),而且项目数量还在不断增加,每个人都可以使用这些工具:数据科学异步框架web框架,或者只是一些使远程自动化更简单的工具。

1. Python 社区很独特

Python 社区非常棒。它是最早采用行为准则的组织之一,首先是Python软件基金会,然后是PyCon。这是一个真正的兼具多样性和包容性的承诺:关于这个主题的博客文章和会议演讲是频繁的、深思熟虑的,而且 Python 社区成员也经常阅读。


虽然社区是全球性的,但在本地社区也有很多很棒的活动。当地的 Python 聚会是一个很好的去处,可以遇到聪明、有经验、乐于助人的人。许多聚会都会明确地为有经验的人预留一些时间,以帮助希望学习新概念或解决代码问题的新手。在我开始我的 Python 学习之时,我的本地社区花了很多时间来帮助我,我很荣幸能够继续回馈给新的开发人员。


无论您是参加本地社区会议,还是在 IRC、Slack 和 Twitter 上花时间与在线Python社区交流,我相信您都会遇到可爱的人,他们都希望帮助您成为成功的开发人员。

行动起来

关于 Python 有太多值得去爱的地方了,现在你知道我最喜欢的部分肯定是关于人的。


我在世界各地的社区中发现了善良、有思想的 Python 从业者,社区为有需要的人提供的投资数额令人鼓舞。除了我遇到的那些人之外,简单、干净、强大的 Python 语言让任何开发人员都有足够的能力在他们的软件开发生涯中充满自信,或者作为一个业余爱好者享受使用有趣的语言的乐趣。如果您对学习您的第一种或一种新语言感兴趣,请考虑使用 Python,并告诉我需要提供怎样的帮助,我会尽力而为。


英文原文:


https://opensource.com/article/19/10/why-love-python


2019-11-07 12:152137
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 544.5 次阅读, 收获喜欢 1978 次。

关注

评论

发布
暂无评论
发现更多内容

浅谈大模型时代的后台技术发展|社区征文

后台技术汇

年中技术盘点

Nautlius Chain主网正式上线,模块Layer3时代正式开启

股市老人

基于Qt编写超精美自定义控件

芯动大师

在 Amazon 上以高可用性模式实现 Microsoft SQL 数据库服务现代化的注意事项

亚马逊云科技 (Amazon Web Services)

Amazon

广州市番禺区委领导一行莅临和鲸科技考察交流

ModelWhale

人工智能 数据科学 产业创新 人才生态

我用ChatGPT润色的课题论文初体验|社区征文

爱技术的药学生

AI 论文写作 GPT 年中技术盘点

NUC永存!英特尔刚刚和华硕聊了后续合作

E科讯

矿炼真金色,终见菩提心:首个商用的矿山大模型是怎样炼成的?

脑极体

AI 大模型

关于新兴技术对我们生活和工作方式的改变 | 社区征文

fifoaa

年中技术盘点

阿里云斩获 4 项年度云原生优秀案例丨阿里云云原生 6 月动态

阿里巴巴云原生

阿里云 云原生

人工智能驱动科学研究:ModelWhale 助力医疗领域科研范式改革

ModelWhale

人工智能 数据分析 数字化医疗 模型推理 AI for Science

云原生微服务应用的平台工程实践

阿里巴巴云原生

阿里云 云原生

AI大模型应用开发实战营第一周作业

panxiaochun

全部免费!整理了10个Python自动化办公库!(下)

程序员晚枫

Python 工具 机器人 自动化办公

百度与软通动力达成战略合作,共同探索大模型产业化落地

彭飞

MVCC

陈皮

XR应用云流化如何提升扩展现实体验?!

3DCAT实时渲染

实时渲染云 XR应用云流化

生成式 AI:改变未来的力量| 社区征文

度假的小鱼

年中技术盘点

KCL v0.5.0 重磅发布 - 面向云原生场景更易用的语言、工具链,社区集成和扩展支持

Peefy

开源 DevOps 云原生 编程语言 Kubernetes Serverless

HarmonyOS课程体验官招募(第四期),寻找乐于分享,精益求精的伙伴

HarmonyOS开发者

HarmonyOS

活动回顾丨阿里云 Serverless 技术实战与创新广州站回放& PPT 下载

阿里巴巴云原生

阿里云 Serverless 云原生

2023-07-19:布尔表达式 是计算结果不是 true 就是 false 的表达式 有效的表达式需遵循以下约定: ‘t‘,运算结果为 true ‘f‘,运算结果为 false ‘!(subExpr

福大大架构师每日一题

福大大架构师每日一题

如何写出一手好代码(上篇-理论储备)?

慕枫技术笔记

后端 7月日更

Nautlius Chain主网正式上线,模块Layer3时代正式开启

威廉META

Nautlius Chain主网正式上线,模块Layer3时代正式开启

鳄鱼视界

B站&华为云 | 融合虚实宇宙,开启云上视听的黄金时代

脑极体

AI B站 华为云

爱上Python的五个理由_AI&大模型_Moshe Zadka_InfoQ精选文章