Python不是一门伟大的语言

如果编程语言是一门武功绝学 学习编程与武功绝学 武侠小说中,各路侠客绿林好汉都是从基本功开始一招一式学起,掌握了足够多的招式后,加之勤学苦练,量变引起质变,会有一天打开任督二脉顿悟出这些招式背后的哲学逻辑,成为一代宗师。在编程的学习过程中,我们何尝不是从一招一式的函数、语法、特性等学起,掌握了一门编程语言后,再学习另一门语言就会快很多,如同拥有内功后,习得其他武功也会轻松很多。 如果编程语言是一门武功绝学,各语言分别是哪门武功绝学呢? 汇编语言 汇编语言 - 易筋经 汇编语言是计算机提供给用户的最快最有效的语言,也是能够.. 阅读详情

作为一门简洁易用、生态蓬勃且具有高泛用性的编程语言,Python一直以来都被不少人称作“编程语言中的瑞士军刀”。

尤其随着近来AI热潮席卷全球,Python在编程语言圈中的地位也随之水涨船高,甚至一度被视作AI专用语言或大数据专用语言。

然而从语言特性出发,Python真的如人们所说的这般伟大么?本文将为你阐明Python语言不那么迷人的方面,而这些可能会让你质疑你对这门流行语言的了解。 

1、优点、缺点和争议点

不可否认,Python庞大的生态系统及其大量的第三方库非常棒。大量的工具和资源选择使其能够成为需要快速解决问题或创建原型的开发人员的首选。

开发者A:“嘿,我需要建立一个网络爬虫,但我不知道如何开始。”开发者B:“没问题!只需使用 BeautifulSoup 和 Requests from Python。轻而易举!” 

然而尽管Python有着值得称道的优势,但其也有一些令人眼花缭乱的缺点。例如,约有400种格式化字符串的方法。这使得Python给人的感觉不像是一种简洁易用的语言,而更像是希望将它的使用者绕晕。

开发者A:“为什么在Python中格式化字符串的方法这么多?!”开发者B:“我哪知道?我想你最好选择一个并坚持下去。” 

对于某些人来说,Python的强制缩进可能是一个很有争议的问题。虽然它确实在一定程度上加强了一致性和可读性,但也有不少人认为它有点过于严格。同样,关于Python动态类型的争论也是一个经久不衰的话题,有些程序员喜欢动态类型的灵活,而另一些程序员则厌恶其所导致的难以发现的错误。

开发者A:“我喜欢 Python 的强制缩进!这能使代码变得更加简洁。” 开发者B:“呃,我受不了了!感觉我的代码就像是穿着一件紧身衣!” 

2、特殊的陷阱

Python的三元表达式常因其非常规的排列而被人所诟病。虽然大多数语言遵循首先声明条件的一致原则,但 Python 的做法恰恰相反,这可能会导致开发者在读取复杂的表达式时出现混淆。

开发者A:“我无法理解Python的三元表达式。”开发者B:“呃,我想这就像试图倒读一个句子。” 

Python 对单项元组的语法可能令人头疼。如果你忘记了结尾的逗号,它就不再是元组,而是一个表达式。这可能会导致难以察觉的错误并给开发者带来挫败感。

开发者A:“我又忘记了元组中的尾随逗号了!” 

开发者B:“恭喜你,遇到了一个经典的Python陷阱。” 

Python 的正则表达式比其他一些语言(如 JavaScript 或 Ruby)需要更多的样板文件,这会使得它们更笨重、更不优雅。

开发者A:“用Python编写正则表达式感觉就像再玩拼图游戏。”开发者B:“同意,它并不完全是Python优雅的缩影。” 

Python “神奇”的双下划线属性对于初学者来说可能看起来很晦涩难懂,但它们提供了一种强大的方法来自定义对象行为。然而不幸的是,他们神秘的本性经常让新手感到困惑。

开发者A:“Python中所有这些双下划线属性是怎么回事?”开发者B:“它们被称为'神奇方法'。旦是你必须掌握了它们的窍门,它们才会变得强大。” 

3、错误处理和不可变之谜

Python 的错误处理方法鼓励特定的错误处理,这被认为是一种好的做法。但是,在一个语句中捕获所有错误及其消息在开发过程中可能不直观且繁琐。

开发者A:“为什么我不能在 Python 中的单个语句中捕获所有错误?” 开发者B:“这一切都是为了推广最佳实践。但是这在开发过程中确实会很烦人。” 

Python 缺乏对不可变字典或复杂对象的原生支持,这些也是开发人员的主要痛点。虽然第三方库可以填补这一空白,但它仍然是一个难以忽视的不便。

开发者A:“为什么Python没有内置对不可变字典的支持?”开发者B:“好问题,但我也不知道为什么,只能感谢第三方库。” 

4、社区文化冲突

一些Python社区中的成员经常对“Pythonic(优雅的、地道的、整洁的)方式”有着近乎狂热的追求和坚持。这很容易在社区中形成一些氛围,让初学者或者意见不同的人感到沮丧或不自在。

开发者A:“我很沮丧,我经常被告知自己'不够Pythonic'。”开发者B:“你需要专注于编写干净、高效的代码,让别人认同你。” 

优越感有时会渗透到Python社区,有些Python开发人员看不起其他语言或编程风格。当然,这种态度并不代表整个社区。许多Python开发人员欣赏建设性的批评,并愿意向其他语言和范式学习。

开发者A:“为什么有些Python开发人员表现得像Python是有史以来最好的语言?”开发者B:“在任何编程语言社区中,总会有某种程度的自豪感。但记住,最好的开发人员总是乐于学习和成长。” 

5、Python是否被高估了

对于Python是否被高估了这个辩题,其实从Python的发展历程中我们不难窥得一隅。

十五年前的Python依靠着Web开始逐渐占领市场,彼时Python的背后,是Django以及后来的Flask等Web框架。而在此后真正使Python走上主流的则是数据科学领域的兴起。

从最初的NumPy、Scipy,再到后来真正将Python发扬光大的的Pandas、TensorFlow、PyTorch等。正是这些Google、Meta等大厂背书的数据科学框架的流行,才使得Python一步步走到了如今的地位。

然而细究之下不难发现,这些库和架构,却都不是用Python写成的,而是C、C++甚至Fortran。时至今日,Python最核心的竞争力依然是其“胶水”属性,粘合了易用的前端和高性能的后端。

诚然,今天的Python 在数据科学方面累积的优势的确难以被动摇,但在许多其他方面,Python的表现的依然无法超越甚至比肩各领域中的翘楚。

6、结语

归根结底,虽然Python无疑是一款流行且功能强大的编程语言,但它并非没有缺陷和争议点。通过研究Python的优势,劣势和争议点,我们能够更准确的描绘出更平衡的语言视图。

在探索其他编程语言和范式时,也必须意识到这些问题并保持开放的心态。

毕竟,最好的开发人员是那些能够适应和学习的人,他们拥抱各种编程语言的优势,同样的,他们也能够拥抱各种编程语言的劣势。

手把手教你用Apollo Dreamview调试自动驾驶感知模块(附数据包下载) 本文详细介绍了如何使用百度Apollo平台的Dreamview工具调试自动驾驶感知模块,包括环境配置、数据加载、感知问题定位和多传感器融合调试等关键步骤。通过实战案例和参数调整技巧,帮助开发者快速掌握自动驾驶感知模块的调试方法,提升开发效率。 阅读详情

相关推荐

FPGA远程更新实战:Multiboot双镜像配置与Flash分区策略

本文详细介绍了FPGA远程更新中Multiboot双镜像的配置与实现,重点对比了XDC约束和ICAPE2原语两种配置方案的优缺点及适用场景。提供了基于W25Q128 Flash的非对称分区策略、MCS文件生成与烧写方法,并深入探讨了远程更新的流程容错处理与可靠性优化建议,帮助开发者构建稳定可靠的FPGA远程更新系统。

ss78901的博客 830

Python:它早已不是一门编程语言

在技术演进的宏大叙事里,我们习惯于用“工具”的视角看待一切:C是精密的手术刀,Java是可靠的重型机床,Rust是未来的航天材料。:在Python的世界里,一个想法的原型验证与最终的生产部署,往往使用的是同一套语言和工具链。这种对“人”的极致关怀,使得编写Python的过程,更像是用结构化的英语与未来的自己或同事进行清晰的书面交流,而不是用机器码去命令一块硅片。,在编程语言的历史上是罕见的。当计算资源越来越廉价,而人的时间、创意的衔接、跨领域的协作越来越昂贵时,Python的这种价值排序,显得无比明智。

2502_94461061的博客 954

使用ACOLITE对OLCI影像进行大气校正+批处理

使用ACOLITE对OLCI影像进行大气校正+批处理

mrzhy1的博客 7359

chatgpt赋能python:Python并不是一门简单的编程语言

本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。

www_xuhss_com的博客 628

F280049C Crossbar X-BAR

X-BAR不是一个功能模块,只起内部外设与外设之间,或内部外设与GPIO的连接作用。配置X-BAR的就是在配置信号之间的连接。确实如这一节的开头所言,X-BAR提供了以各种配置连接设备输入、输出和内部资源的灵活性。学完这一节也知道为什么crossbar(X-BAR)的中文翻译是交叉开关。

xht2403267701的博客 3048

E5071C 网络分析仪使用指南

E5071C 网络分析仪是 Keysight(原 Agilent)推出的一款高性能矢量网络分析仪,广泛应用于射频(RF)和微波(MW)电路设计、天线测试、滤波器优化等领域。它以高精度、宽频率范围(9 kHz–20 GHz)、出色的动态范围和灵活的测量功能著称。本文将详细介绍 E5071C 的基本操作方法,帮助用户快速上手并高效使用该设备。

2501_90901792的博客 4185

为什么计算机大学生初入大学,学的第一门语言就是C,而不是python或者java或者其他语言?

因其速度快、简单、灵活的特点,C语言成为了非常重要的编程语言之一,即使在当前的编程环境中,它仍然有着广泛的应用。C是计算机科学领域中具有重要地位的语言之一,它是一种高效、灵活和强大的编程语言,可以进行系统级编程、网络编程、游戏开发、嵌入式编程等多种领域的开发工作。相比之下,C语言的语法和使用比较底层,对于刚接触编程的初学者来说,可能会显得比较繁琐和难以理解。- 过去和现在的重要性:自20世纪70年代以来,C语言一直是最流行、最广泛使用的编程语言之一,许多操作系统和应用程序都是用C语言编写的。

fengyege的博客 1135

YOLOv11改进策略【Head/分割头】| 结合CVPR-2024 中的DynamicConv 动态卷积 改进分割头, 优化模型(独家改进)

在大规模视觉预训练中,通常模型的性能受到数据、参数和FLOP三个关键因素的影响。一般来说,模型的参数数量越多,FLOP也越高,但在移动设备等对计算资源有限制的场景下,需要低FLOP的模型同时又希望模型能从大规模预训练中受益。传统的方法很难在增加参数的同时保持低FLOP,因此需要一种新的设计来解决这个问题,模块应运而生。

Limiiiing的博客 2310

选择java还是python-编程语言是选择Java还是Python好呢?

声明:这是一篇容易引起撕逼的问答,为了祖国和谐,人民安康,请各位看官尽量理性讨论。正巧我前两天写了一篇 Java和Python现在都挺火,我应该怎么选 的文章,正好对题,就此回答一波。同时,这篇文章是面向一些初入行的朋友进行一些相对中肯一点的分析和建议而已,虽然有浓厚的个人色彩,但我还是尽量以事实说话,以代码说话,大牛们就不要拿自己的牛逼经验来这里装逼了,当然,你如果非得来跟我撕,哥们儿我奉陪。另...

weixin_37988176的博客 167

【Claude】权限被拒绝 (Permission Denied) 全场景排查 — 已解决

权限配置是 Claude Code 安全使用的核心机制。通过合理的 allow/deny 规则、正确的通配符使用、子代理独立配置、定期安全审计,可以在保证安全性的同时不影响开发效率。deny 优先:deny 规则优先级高于 allow,先保护敏感资源通配符精确单层匹配,**递归匹配,Bash(cmd*)允许带参数最小权限:只允许必要的操作,避免Bash(*)等危险规则CI 用 skip:Headless 模式用避免挂起子代理独立:每个子代理单独配置权限,不自动继承保护密钥:deny.env。

一键难忘的博客 3935

Virtual Hard Disk version 2 (VHDX) 文件格式详解

VHDX 镜像格式详解 0. References windows github 1. Overview Microsoft 虚拟化产品中常用的映像格式是虚拟硬盘版本 2 (VHDX) 映像格式。该规范基于可用文档,并通过分析测试数据进行了增强。 VHDX 镜像格式种类 固定硬盘镜像 动态硬盘镜像 差异硬盘镜像 VHDX 镜像文件由以下元素构成: file (type) identifier 2x image headers 2x region tables log or metadata journ

圣三一 2694

python适合零基础的人吗_对于几乎是零基础的人,直接学 Python 编程合适吗

答:Python是一门比较适合零基础人员学习的编程语言,只要你想学,愿意学,并选择一个好的学习途径,就一定能学会,我发你一份比较全面的Python课程大纲,对你学习会有帮助的! 阶段一:Python开发基础 Python全栈开发与人工智能之Python开发基础知...答:可以,Python很适合从没有接触过编程的人入门,它不涉及太多底层原理,只专注于实现功能,而且代码简洁功能强大。零基础可以看《父...

weixin_39896256的博客 366

PCIE总线及其PCIE SWITCH的使用

PCIe总线与PCI最大的区别在工作原理上,PCIe是采用点到点的串行方式进行传输的,被称为“串行PCI”,由于采用了串行方式传输使得其工作频率可以达到2.5Ghz,大大增加了传输速率,同时采用全双工的通信方式,使得其传输速度提高了一倍,每一个PCIe总线设备与外部通信时有四根数据总线,分别有两个RX和TX,两根用于发送,两根由于接收。PCIe switch中文翻译为PCIe开关或PCIe交换机,主要作用将PCIe设备互联,PCIe switch芯片与其设备的通信协议都是PCIe;

zxm8513优快云博客 4734

Python【0】:windows环境下 安装python3

了解Python 首先·····Python是一门解释性语言,这是他的特点,这让Python似乎与“高效”无缘。然而你知道吗,著名的Instagram服务器就是是用Python+Django搭建的,而且月活用户超过7亿。要知道Python+Django是一个以速度慢著称的web框架,一定是python的某个优点深深的吸引了他们。是的,这个优点就是,开发效率高   Python is a progr...

weixin_33883178的博客 110

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python是一门好语言

 对于效率的讨论已经非常多了,原因非常多,简单列举想得到的: 1) 开发效率远比执行效率要高 2) 对于低效的可以采用c/c++来写,然后封装成python的模块,所以用python写的只是不太关注效率的东西 3) 看你的应用对效率的要求有多少,对于web还有象使用cache的技术,非常适合动态语言,一样可以提高效率 4) 有时效率的瓶颈并不在语言的解释处理上,而主要在网络,数据

huixx的专栏 1351

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python是一门只面向对象的语言_python只是一门锦上添花的语言吗?

1. 免费:Python是开源软件。这意味着你不用花一分钱便能复制、阅读、改动它,这也是Python越来越优秀的原因——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。2. 简单:Python奉行简洁主义,易于读写,它使你能够专注于解决问题而不是去搞明白语言本身。3. 兼容性:Python兼容众多平台,所以开发者不会遇到使用其他语言时常会遇到的困扰。4. 面向对象:Python...

weixin_39922476的博客 485

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

python语言好不好_为什么python是一个非常不好的语言

一直以来我都表达 python 是个糟糕语言的观点,但是没有深入的解释。计算机一直都是“工具”,意味着我们是拿它干活的,也就是所谓的提高生产力。指挥计算机干活的重要工具就是编程语言。计算机并不是训练来干活的,是编程来干活的。编程语言的效率有2个指标:编写干活指南的效率和机器人执行的效率。在人力成本低于硬件的时候,人追捧的是执行效率。人力成本越来越高的时候,人开始追求编程的效率。人自然是希望一个语言...

weixin_39813009的博客 278

python是高级语言还是机器语言_02_python是一种什么语言?

python是一种什么语言?1.低级语言与高级语言最初的计算机程序都是用0和1的序列表示的,程序员直接使用的是机器指令,无需翻译,从纸带打孔输入即可执行得到结果。后来为了方便记忆,就将用0、1序列表示的机器指令都用符号助记,这些与机器指令一一对应的助记符就成了汇编指令,从而诞生了汇编语言。无论是机器指令还是汇编指令都是面向机器的,统称为低级语言。因为是针对特定机器的机器指令的助记符,所以汇编语言是...

weixin_39921224的博客 3890

第一门编程语言,我应该学什么?

作者 | Daniel Bastos 译者 | 弯月 责编 | 郑丽媛 出品 | 优快云(ID:优快云news) 软件工程师问我最多的一个问题就是,第一门编程语言应该学什么。这可能是开发人员学习过程中最大的困惑,以至于许多人觉得在得到百分百正确的答案之前,他们什么都不想学。然而现实是,你可以选择任何一种语言!选择哪种语言其实并不重要。 我将在本文中解释原因,并引导你对编程语言建立正确的心态。最后,我们还将讨论如何从眼花缭乱的技术栈中选择一个。 编程语言本身不是工作 初学者高估这个决定的重要性的主要.

优快云资讯 1万+

python是一门静态语言吗_Python是一门什么语言

编程语言主要从以下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每个分类代表什么意思呢,下面我们一起看一下。编译和解释的区别是什么?编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行...

weixin_39874379的博客 1048

p语言是python吗-Python是纯的面向对象语言吗?

不可否认的是,Python是面向对象的语言,但它是纯的面向对象语言吗?为什么会提出这个问题呢?原因是今天遇到了一个问题,但经过了几个小时的调研,期间也曾经询问过其他人,但得到了错误的答案,还好自己一直没有放弃,最终找到了正确的答案(Practice makes perfect)。这个问题是什么呢?dir(1)['__abs__', '__add__', '__and__', '__class__'...

weixin_37988176的博客 207

只精通一门编程语言足够吗?探讨程序员的多语言挑战

传统的数据仓库集成处理架构是ETL,利用ETL平台的能力,E=从源数据库抽取数据,L=将数据清洗(不符合规则的数据)、转化(对表按照业务需求进行不同维度、不同颗粒度、不同业务规则计算进行统计),T=将加工好的表以增量、全量、不同时间加载到数据仓库。这些都是编程技术和工具的体现,它们可以反映编程语言的优势和局限,适合于不同的领域和场景。这个信息收集分析整合的工作,可应用的范畴非常的广泛,无论是生活服务、出行旅行、金融投资、各类制造业的产品市场需求等等,都能够借助爬虫技术获取更精准有效的信息加以利用。

大模型教程的博客 1475

python第一课:如何学好一门语言

寒假任务:用pytorch构造卷积神经网络完成mnist手写数字识别 第一课:python第一课:如何学好一门语言

q774798577的博客 2288

python是一门编程语言吗_Python是一门怎样的编程语言

编程语言主要分为编译型和解释型,静态语言和动态语言,强类型和弱类型,混合语言等。编译型语言:通过编译器把源代码编译(compile)成机器语言,在经过链接(linker)将源代码中所使用的库串联起来生成可执行二进制文件,这样运行时 计算机可以直接以机器语言来运行程序。优点:运行效率高。缺点:编译之后如果需要修改代码需要重新编译整个模块。编译的时候根据对应的运行环境生成机器码,不同的操作系统之...

weixin_39764212的博客 393

python是一门高级的计算机语言对吗_Python是一门怎样的编程语言

编程语言主要分为编译型和解释型,静态语言和动态语言,强类型和弱类型,混合语言等。编译型语言:通过编译器把源代码编译(compile)成机器语言,在经过链接(linker)将源代码中所使用的库串联起来生成可执行二进制文件,这样运行时 计算机可以直接以机器语言来运行程序。优点:运行效率高。缺点:编译之后如果需要修改代码需要重新编译整个模块。编译的时候根据对应的运行环境生成机器码,不同的操作系统之...

weixin_39622988的博客 2976

为什么我选择Python作为第一门编程语言

去年这个时候,我还是个编程小白,在Java、Python、JavaScript之间纠结了好久。现在回头看,选择Python入门是我做过最正确的决定之一。这篇文章分享一下我的思考过程,希望对同样迷茫的你有帮助。选择第一门编程语言,没有标准答案。Java、JavaScript、Go都是好选择,取决于你的目标和兴趣。我选Python,是因为它让我能快速看到成果,建立信心,然后再去探索更多。如果你也是编程新手,不妨试试Python。最坏的结果,也不过是多学了一门语言而已。

2511_93718994的博客 1万+
上一篇: 实锤研究,ChatGPT能力掉线!
下一篇: 火狐,要完了!
老贾的AI世界
博客等级 码龄7年 3335粉丝 254原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老贾的AI世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值