专栏首页Opensource翻译专栏我喜欢 Python 的5个原因【Programming(Python)】

我喜欢 Python 的5个原因【Programming(Python)】

这些是我最喜欢 Python 的一些原因

图片来源:Raspberry Pi Foundation. CC BY-SA 4.0.

我从1998年就开始使用Python,当时它是一种鲜为人知的语言。那是 Perl 在开放源代码世界中相当流行的时期,但是从我发现 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使用空格作为语法,因此在其他代码中无需使用开始{和end }表示法。

Python还避免了对分号的需求,分号是使其他语言易于阅读的语法糖。Python在我眼中更容易阅读,并且感觉与伪代码非常接近,有时使我感到惊讶!

4. Python具有强大的原语

在编程语言设计中,原语是最简单的可用元素。 Python易于阅读的事实并不意味着它不是一种功能强大的语言,这源于它对原语的使用。 我最喜欢的使Python易于使用和先进的示例是其生成器的概念。

假设您有一个简单的二叉树结构,左右都是值。 您希望能够轻松地按顺序遍历它。 您通常要寻找“小”元素,以便在找到正确的值后立即退出。 到目前为止,这听起来很简单。 然而,有许多种算法可以对元素进行决策。

其他语言会让您编写一个visitor ,在其中通过输入“这是正确的元素”来反转控制权,并通过函数指针调用它。 你可以用 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 面试问题的巧妙解决方案:

fizz = itertools.cycle(itertools.chain(['Fizz'], itertools.repeat('', 2)))
buzz = itertools.cycle(itertools.chain(['Buzz'], itertools.repeat('', 4)))
fizz_buzz = map(operator.add, fizz, buzz)
numbers = itertools.islice(itertools.count(), 100)
combo = zip(fizz_buzz, numbers)
for fzbz, n in combo:
print(fzbz or n)

网络搜索会显示这不是解决 FizzBuzz 最直接的方法,但它肯定是有趣的!

除了玩笑之外,itertools 模块以及 heapq 和 functools 模块是 Python 实现中默认的宝藏。

2. Python生态系统庞大

对于标准库中没有的所有内容,都有一个巨大的生态系统来支持新的Pythonista,从令人兴奋的软件包到专门针对该语言的文本编辑器插件。 PyPi上托管了约20万个项目(在撰写本文时)并且还在不断发展,每个人都有一些东西: 数据科学异步框架Web框架 ,或者只是使远程自动化更容易的工具。

1. Python社区很特别

Python 社区是令人惊奇的。它是第一个采用行为准则的组织之一,先是针对 Python Software Foundation,后来又针对 PyCon。对于多样性和包容性有一个真正的承诺:这个主题的博客文章和会议演讲被 Python 社区成员频繁、深思熟虑和广泛阅读。

虽然这个社区是全球性的,但是当地社区也有很多很棒的活动。本地 Python 聚会是结识那些聪明、有经验并且渴望帮助的优秀人士的好地方。很多见面会都会明确地留出时间给有经验的人,帮助那些想学习新概念或者用他们的代码解决问题的新人。我的本地社区在我开始 Python 之旅的时候花时间支持我,我很荣幸能够继续回馈给新的开发人员。

无论你是参加本地社区的聚会,还是花时间在 IRC、 Slack 和 Twitter 的在线 Python 社区,我相信你都会遇到那些可爱的人,帮助你成为一名成功的开发人员。

结语

关于Python有很多值得爱的东西,现在您知道我最喜欢的部分肯定是人。

我在世界各地的社区中发现了善良,体贴的Python高手,并且为需要帮助的人提供的社区投资额令人难以置信。 除了我遇到的那些知识之外,简单、干净、功能强大的Python语言还为开发人员提供了足够多的东西,使他们能够熟练地从事软件开发或成为喜欢玩有趣语言的业余爱好者。如果你有兴趣学习你的第一门语言或者一门新的语言,考虑一下 Python,让我知道我能帮上什么忙。

原文链接:https://opensource.com/article/19/10/why-love-python

原文作者:Moshe Zadka (Community Moderator)

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 十二种学习Python的方法【Programming】

    Python 是世界上最流行的编程语言之一。 它受到了世界各地开发者和制造商的欢迎。 大多数 Linux 和 MacOS 计算机都预装了 Python 版本,现...

    Potato
  • 如何在Windows上安装Python【Programming(Python)】

    所以你想学习编程吗?Python是最常见的语言之一,它以面向对象的结构和简单的语法的独特结合而流行。Python还是一种解释型语言,这意味着您无需学习如何将代码...

    Potato
  • 使用JSON保存和加载Python数据【Programming(Python)】

    JSON格式使您不必创建自己的数据格式,如果您已经了解Python,它就特别容易学习。这是在Python中使用它的方法。

    Potato
  • 塔秘 | Python 2.7即将停止支持,请收下这份3.x迁移指南

    前言 目前,Python 科学栈中的所有主要项目都同时支持 Python 3.x 和 Python 2.7,不过,这种情况很快即将结束。 去年 11 月,Num...

    灯塔大数据
  • 与Java、PHP 、C#相比,为什么Python薪资更高?

    程序你好
  • Python怎么学,才能薪资翻一翻?

    如果你对数据分析有所了解,一定听说过一些亲民的工具如Excel、Tableau、PowerBI等,都能成为数据分析的得力助手。但它们的不足也是显而易见的:操作繁...

    一墨编程学习
  • Python能做什么?

    Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。使用Python语言编写的Gunicorn...

    用户2398817
  • 因为Python的这3个优点,我的薪资涨了一倍

    如果你对数据分析有所了解,一定听说过一些亲民的工具如Excel、Tableau、PowerBI等,都能成为数据分析的得力助手。但它们的不足也是显而易见的:操作繁...

    华章科技
  • Python开发者必备6个基本库

    译者注:无论你是想快速入手Python还是想为Python应用程序构建本地UI,亦或者对Python代码进行优化,本文列举的6个库,都有可能会帮到你。

    用户2398817
  • Python怎么学?学习Python没有那么容易,一定要掌握学习方法

    Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取...

    python学习教程

扫码关注云+社区

领取腾讯云代金券