声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好的理解人工智能技术,我让助理负责分享这套python系列教程,希望能帮到大家!

当Python于20世纪90年代初期出现在软件舞台上时,曾经引发其拥护者和另一个受欢迎脚本语言Perl的拥护者之间的冲突,但现今已成为经典的争论。我们认为今天这种争论令人厌倦,也没有根据,开发人员都很聪明,可以找到他们自己的结论。然而,这是我在培训课程上时常被问到的问题之一,所以在此对这个话题说几句话,似乎是合适的。

故事是这样的:你可以用Python做到一切用Perl能做到的事,但是,做好之后,还可以阅读自己的程序代码。就是因为这样,两者的领域大部分重叠,但是,Python更专注于产生可读性的代码。就大多数人而言,Python强化了可读性,转换为了代码可重用性和可维护性,使得Python更适合用于不是写一次就丢掉的程序。Perl程序代码很容易写,但是很难读。由于多数软件在最初的创建后都有较长的生命周期,所以很多人认为Python是一种更有效的工具。

这个故事反映出两个语言的设计者的背景,并体现出了人们选择使用Python的一些主要原因。Python的创立者所受的是数学家的训练,因此,他创造出来的语言具有高度的统一性,其语法和工具集都相当一致。再者,就像数学一样,其设计也具有正交性(orthogonal),也就是这门语言大多数组成部分都遵循一小组核心概念。例如,一旦掌握Python的多态,剩下的就只是细节而已。

与之相对比,Perl语言的创立者是语言学家,而其设计反映了这种传统。Perl中,相同任务有很多方式可以完成,并且语言材料的交互对背景环境敏感,有时还有相当微妙的方式,就像自然语言那样。就像著名的Perl所说的格言:“完成的方法不止一种。”有了这种设计,Perl语言及其用户社群在编写代码时,就一直在鼓励表达式的自由化。一个人的Perl代码可能和另一个人的完全不同。事实上,编写独特、充满技巧性的代码,常常是Perl用户之间的骄傲来源。

但是,任何做过任何实质性的代码维护工作的人,应该都可以证实,表达式自由度是很棒的艺术,但是,对工程来说就令人厌恶了。在工程世界中,我们需要最小化功能集和可预测性。在工程世界中,表达式自由度会造成维护的噩梦。不止一位Perl用户向我们透露过,太过于自由的结果通常就是程序很容易重头写起,但修改起来就不是那么容易了。

考虑一下:当人们在作画或雕塑时,他们是为自己做,为了纯粹美学考虑。其他人日后去修改图画或雕像的可能性很低。这是艺术和工程之间关键的差异。当人们在编写软件时,他们不是为自己写。事实上,他们甚至不是专门为计算机写的。而实际上,优秀的程序员知道,代码是为下一个会阅读它而进行维护或重用的人写的。如果那个人无法理解代码,在现实的开发场景中,就毫无用处了。

这就是很多人认为Python最有别于Perl这类描述语言的地方。因为Python的语法模型几乎会强迫用户编写可读的代码,所以Python程序会引导他们往完整的软件开发循环流程前进。此外,因为Python强调了诸如有限互动、统一性、规则性以及一致性这些概念,因此,会更进一步促进代码在首次编写后能够长期使用。

长期以来,Python本身专注于代码质量,提高了程序员的生产力,以及程序员的满意度。Python程序员也变得富有创意,以后就知道,语言本身的确对某些任务提供了多种解决办法。不过,本质上,Python鼓励优秀的工程的方式,是其他脚本语言通常所不具备的。

至少,这是许多采用Python的人之间所具有的共识。当然,你应该要自行判断这类说法,也就是通过了解Python提供了什么给你。

我的微信公众号:人工智能知识分享

python生产教程_python系列教程6相关推荐

  1. Python时间序列LSTM预测系列教程(6)-单变量

    单变量LSTM预测模型(6) 教程原文连接 前置教程: Python时间序列LSTM预测系列教程(1)-单变量 Python时间序列LSTM预测系列教程(2)-单变量 Python时间序列LSTM预测 ...

  2. python技术晨讲_python系列教程14

    声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好的理解人工智能技术,我让助理负责分享这套python系列教程,希望能帮到大家! 好了,是开始 ...

  3. python图纸教程_python入门教程 python入门神图一张

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  4. python 3教程_Python 3 教程

    全屏 Python 3 教程 Python的3.0版本,常被称为Python 3000,或简称Py3k.相对于Python的早期版本,这是一个较大的升级.为了不带入过多的累赘,Python 3.0在设 ...

  5. python独立网站教程_python做网站教程_如何免费做网站的教程

    python学习指南教程 180x270 - 7KB - JPEG 图灵程序设计丛书:Python基础教程 260x317 - 12KB - JPEG 跳一跳python使用教程 微信跳一跳pytho ...

  6. python画四边形_python绘图教程-用python来绘制出四边形

    原标题:python绘图教程-用python来绘制出四边形 python的应用有很多,其中还可以用python来绘制四边形,下面羽忆教程网为您分享如何用python来绘制四边形的详细步骤. pytho ...

  7. python生产教程_python入门教程12-09 (python语法入门之生产者消费者模型)

    Python中的生产者消费者模型,在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题,是本章的重点内容,下面我们一起来看看吧. 生产者消费者模型 在并发编程中使用生产者和消费者模式能够解决绝大 ...

  8. 派森python教程_Python系列教程一Python入门(一)

    前言 各位看博客的园友们,大家好,我就是那个风流倜傥的KK,还记得我那篇2019年的年中总结博客吗?我想有许多看博客的园友是没有读过我那篇文章的,KK很生气,后果很严重(开个玩笑了,怎么可能).给大家 ...

  9. python参数解析模块_Python系列教程(三十七):参数解析模块argparse

    使用python写出的脚本在运行的时候,是可以传递参数的,一般会使用sys.argv[]来接收用户传的参数.但是如果要实现类似于linux命令的,比如'ls -l -t /etc/'这种比较复杂的选项 ...

最新文章

  1. python dataframe groupby_【Python数据分析基础】入坑必备的数据预处理操作
  2. --save 和--save-dev的区别
  3. vocabulary of ERP
  4. 【Java笔记】【Java核心技术卷1】chapter3 D4变量
  5. c语言程序设计自学跟谁好,双辽c语言编程学习,双辽学c语言编程哪个好,双辽学c语言编程自学好还是报班好...
  6. 开发一个手游需要的工种
  7. 最常见30种NLP任务练手项目汇总
  8. linux环境c语言实现who,Linux下C语言编程环境的搭建1
  9. 第三方支付和代付区别在哪?
  10. ppt如何替换其他mo ban_有没有一个 PPT 技巧让自己觉得人生都亮了?
  11. fastdfs断点续传
  12. HOOK技术四-插件中Activity启动实战
  13. 域控制器组策略:域用户加入域,默认加入本地管理员组
  14. Opus:IETF低延迟音频编解码器:API和操作手册
  15. 百度地图 JS API Marker自定义图标
  16. uniapp 微信小程序地图,在高德app、腾讯app、百度app、苹果地图app 中打开
  17. 安装Gitblit版本控制服务器
  18. overleaf怎么输入中文_【Latex | 输入中文 | 小论文】如何用利用在线Latex工具Overleaf编写中文论文...
  19. java中关于死锁的概念和实例操作
  20. 使用matlab的MAT.H(c读取mat文件)

热门文章

  1. 图片处理--图片识别以及抗干扰处理
  2. 统计调查项目有下列_统计学练习题及答案
  3. BootStrap实现带有增删改查功能的表格(DEMO详解)
  4. Android自己主动检測版本号及自己主动升级
  5. eclipse错误提示:Syntax error on tokens, delete these tokens
  6. QLExpress-阿里规则引擎
  7. Vue导出word附表部分横向显示(承接上一篇Vue纯前端导出word)
  8. (转)SSE,MSE,RMSE,R-square指标讲解
  9. 视频号怎么去变现赚钱?别人已经月入过万了丨国仁网络资讯
  10. 并不能来一发50AC