前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >我喜欢 Python 的5个原因【Programming(Python)】

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

作者头像
Potato
修改于 2019-11-18 04:01:25
修改于 2019-11-18 04:01:25
91000
代码可运行
举报
运行总次数:0
代码可运行

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

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

我从1998年就开始使用Python,当时它是一种鲜为人知的语言。那是 Perl 在开放源代码世界中相当流行的时期,但是从我发现 Python 的那一刻起,我就相信它了。我的父母经常提醒我,我曾经说过“Python将会是一件大事”和“有一天我就能找到工作”之类的话。 虽然经过了一段时间,但我的预言成真。

这种语言有太多值得喜爱的地方。 以下是我继续如此热爱 Python 的5大理由(从低到高):

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

伪代码是在不遵循特定语言的确切语法和语法的情况下写出编程逻辑的概念。 自从成为一名Python程序员以来,我就不再编写任何伪代码,因为其实际设计可以满足我的需求。

即使您不太了解Python,Python也很容易阅读,这在很大程度上是设计使然。 能够运行代码的空白要求相当出名。 空格对于任何一种语言都是必需的,它使我们能够将这句话中的每个单词都视为不同的单词。 大多数语言都有关于空格使用的建议或“最佳实践”,但是Python通过要求标准化迈出了大胆的一步。 对我来说,这使得阅读代码和查看代码的工作变得非常简单。

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

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
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 中的这个实现进行比较。

代码语言:java
AI代码解释
复制
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 来做到这一点,但没什么必要。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
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 面试问题的巧妙解决方案:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
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,让我知道我能帮上什么忙。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
现学现用的 10 个 Python 技巧
原文:10 Python Tips and Tricks You Should Learn Today
Crossin先生
2020/04/08
9710
相见恨晚的 Python 内置库:itertools
来源 : 忆先 01 前言 很多人都致力于把Python代码写得更Pythonic,一来更符合规范且容易阅读,二来一般Pythonic的代码在执行上也更有效率。今天就先给大家介绍一下Python的系统库itertools。 02 itertools库 迭代器(生成器)在Python中是一种很常用也很好用的数据结构,比起列表(list)来说,迭代器最大的优势就是延迟计算,按需使用,从而提高开发体验和运行效率,以至于在Python 3中map,filter等操作返回的不再是列表而是迭代器。 话虽这么说但大家平
张俊红
2022/03/03
7150
Python 技巧十则
据Stack Overflow上的数据显示,Python是增长最快的编程语言。福布斯的一篇最新报告(https://www.whatech.com/development/press-release/442278-why-developers-vote-python-as-the-best-application-programming-language)指出,Python去年增长了456%。Netflix使用Python,IBM使用Python,其他数百家公司都使用Python。对了,不要忘记Dropbox,它也是用Python创建的。根据Dice的研究显示(https://insights.dice.com/2016/02/01/whats-hot-and-not-in-tech-skills/),Python也是最热门的语言之一,并且根据《Popularityof Programming Language Index(https://pypl.github.io/PYPL.html)》来看,它也是世界上最受欢迎的编程语言。
AI研习社
2019/12/09
1.1K0
18 个 Python 高效编程技巧,Mark!
初识Python语言,觉得python满足了我上学时候对编程语言的所有要求。python语言的高效编程技巧让我们这些大学曾经苦逼学了四年c或者c++的人,兴奋的不行不行的,终于解脱了。高级语言,如果做不到这样,还扯啥高级呢?
小小詹同学
2019/05/04
5910
22个Python最佳编程技巧,新手越早知道越好
这个情况如果要交换变量在c++中,肯定需要一个空变量。但是python不需要,只需一行,大家看清楚了
一墨编程学习
2019/04/18
5010
22个Python最佳编程技巧,新手越早知道越好
【Python入门第十三讲】可迭代对象(Iterable)、迭代器(Iterator)和生成器(Generator)
在 Python 中,可迭代对象(Iterable)、迭代器(Iterator)和生成器(Generator)是处理数据集合和处理大数据时常用的概念和工具。
不惑
2024/02/08
1.7K0
【Python入门第十三讲】可迭代对象(Iterable)、迭代器(Iterator)和生成器(Generator)
命令行上的数据科学第二版 四、创建命令行工具
在整本书中,我将向您介绍许多基本上适合一行的命令和管道。这些被称为一行程序或管道。能够只用一行程序执行复杂的任务是命令行的强大之处。这是一种与编写和使用传统程序截然不同的体验。
ApacheCN_飞龙
2023/03/31
2.3K0
如何在一场面试中展现你对Python的coding能力?
如果你已经通过了招聘人员的电话面试,那么下面正是该展现你代码能力的时候了。无论是练习,作业,还是现场白板面试,这都是你证明自己的代码技巧的时刻。
Python数据科学
2019/04/26
1.3K0
如何在一场面试中展现你对Python的coding能力?
Python 炫技操作(03):连接列表的八种方法
Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。
朱小五
2020/04/22
5140
Python 工匠:容器的门道
容器”这两个字很少被 Python 技术文章提起。一看到“容器”,大家想到的多是那头蓝色小鲸鱼:Docker,但这篇文章和它没有任何关系。本文里的容器,是 Python 中的一个抽象概念,是对专门用来装其他对象的数据类型的统称。
腾讯蓝鲸助手
2022/06/28
5710
弄懂这56个Python使用技巧,秒变Python大神!
你也许知道如何进行列表解析,但是可能不知道字典/集合解析。它们简单易用且高效。就像下面这个例子:
一墨编程学习
2019/08/12
1.3K0
新手上路必学的Python函数基础知识,全在这里了(多段代码举例)
导读:函数是Python中最重要、最基础的代码组织和代码复用方式。根据经验,如果你需要多次重复相同或类似的代码,就非常值得写一个可复用的函数。通过给一组Python语句一个函数名,形成的函数可以帮助你的代码更加可读。
IT阅读排行榜
2018/08/17
6850
Python3标准库built-in、
Python3中实现了很多生成器函数,本篇主要介绍built-in、itertools、functools模块中的生成器。
py3study
2020/01/02
1.5K0
流畅的 Python 第二版(GPT 重译)(九)
迭代对于数据处理是基础的:程序将计算应用于数据系列,从像素到核苷酸。如果数据不适合内存,我们需要惰性地获取项目——一次一个,并按需获取。这就是迭代器的作用。本章展示了迭代器设计模式是如何内置到 Python 语言中的,因此您永远不需要手动编写它。
ApacheCN_飞龙
2024/03/21
3040
流畅的 Python 第二版(GPT 重译)(九)
Python 容器使用的 5 个技巧和 2 个误区
在 Python 中,有四类最常见的内建容器类型: 列表(list)、 元组(tuple)、 字典(dict)、 集合(set)。通过单独或是组合使用它们,可以高效的完成很多事情。
一墨编程学习
2019/07/14
8190
笨办法学 Python · 续 练习 16:冒泡、快速和归并排序
你现在将尝试为你的DoubleLinkedList数据结构实现排序算法。对于这些描述,我将使用“数字列表”来表示随机的事物列表。这可能是一堆扑克牌,一张纸上的数字,名称列表或其他任何可以排序的东西。当你尝试排序数字列表时,通常有三个备选方案:
ApacheCN_飞龙
2022/12/01
3930
一系列有用的Python技巧
幸好,Python的标准库提供了collections模块,它为您提供了更多的数据类型
会呼吸的Coder
2020/02/17
6570
独家 | 16个Python技巧,轻松解锁编程新境界(附链接)
作者:Anmol Tomar 翻译:王闯(Chuck)校对:赵茹萱 本文约2700字,建议阅读7分钟本文介绍了16个 Python 编程技巧。 标签:数据科学、Python 掌握这些技巧不仅能够提高编程效率,还能使你的代码更加优美和高效,让人眼前一亮!如果你想在编程路上更进一步,那么不妨一试。 让Python开发者生活更加轻松的技巧 图片来源: Unsplash 简介 Python作为一种编程语言,拥有大量的库和框架,获得广泛应用。然而,有些Python 编程技巧和库却鲜为人知,开发者如果能掌握这些技巧
数据派THU
2023/04/03
3730
独家 | 16个Python技巧,轻松解锁编程新境界(附链接)
Python工匠:解析容器类型的门道
花下猫语:年关已近,我本周忙得天昏地暗,忙中出了不少错,喵了个去。无论如何,希望大伙是买票顺顺利利的,回家安安全全的,过年是开开心心的。今天,给大家分享的是一篇很长的好文,祝大家阅读愉快。PS:本文是该系列的第四篇,其它文章也很好,文末附了链接,可关联阅读哦~
Python猫
2019/04/09
8250
什么是好的编程语言?
本文作者是高级系统开发工程师 Torbear Gannholm。Torbear 有着 30 多年的开发经验,对技术很深刻的理解。对于什么是好的编程语言,他发表了一篇文章分享了自己的观点。以下是他的全文:
AI研习社
2019/11/23
2.9K0
推荐阅读
相关推荐
现学现用的 10 个 Python 技巧
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验