相对于其它编程语言来说,Python对于新手来说非常友善。原因我总结大概三点:「语法简单」、「工法完整」、「应用广泛」。当然,它也有缺点,那就是「执行缓慢」。接下来我来细讲一下,大家再来断定这门语言。

优点一:语法简单

一个程序语言要受到初学者欢迎,端看它能在多短的时间内,带给初学者「成就感」与「信心」。如果用「在屏幕上印出『Hello! World!』这串字」当成比赛题目,看使用 C、Java、Python 三种语言的程序员,可以率先达到目标。那么 Python 一定是从按下码表后,第一个达目标。

让我们先看 C 语言。C 语言得写出下面这段程序代码、存档、拿着这个原始码档去编译,才能在屏幕上印出「Hello! World!」:

接着来看 Java 语言。跟 C 语言很类似,得写出下面这段程序代码,历经「存档、编译、执行」三步骤后,在屏幕上印出「Hello! World!」字样:

最后是就是重头戏 Python。只要写下面这段原始码,直接按 Enter 键,不必存档、不必编译,就能直接执行,并印出「Hello! World!」字样:

你没看错,就一行!聪明如您,如果想在屏幕上印出一串字,您会选择 C?Java?还是 Python 呢?除此之外,Python 还有许多「别人写十行,我只写一行」这种「以一打十」的范例。这样,您分辨得出来哪种语言的语法比较简单了吗?

优点二:工法完整

先说明把「工法」这个名词用在这里,是我擅自认为这两个字比较能表达我想说的「意境」才用的,这个名词并非信息业界的流通用语。「工法」指的是撰写程序的原则与方法。在各类程序语言中,常见的「工法」有三种:程序导向、面向对象、函数导向。大家不要被「XX 导向」什么的吓到了,我说个比喻您就会懂。就像一盘青江菜,您可以炒成浙式、川式、广式三种。本质都是「炒青江菜」,但在作法与过程上,有些不同罢了。程序导向、面向对象、函数导向也是如此,都是能做出特定结果的程序写作方法而已。

但不是任何语言,都能任意使用上述三种工法,还得该语言有支持某工法的「语法」才行。就像用「潜盾工法」在地底挖隧道,并不适用于任何地质,太松软的地质只能用「明挖覆盖法」直接破坏表面了。以常见的语言来说,C 语言只支持「程序导向」;Java 支持「程序导向」与「面向对象」,直到 Java 8 之后,才补上支持「函数导向」的语法;而 Python 很早就支持「程序导向」、「面向对象」、「函数导向」三种工法,所以学会 Python 后,学习任何其它语言都会快!就像有「学会西班牙语后,学法语、意大利语都会快」此一说法一样。

正因 Python 支持的工法完整,学了 Python 之后学其它语言不会慢到哪里去,所以各大专院校才会鼓吹初学者,把 Python 作为第一个程序语言。这也成为 Python 受到初学者欢迎的原因之一。

优点三:应用广泛

Python 另一个受到初学者欢迎的原因,是它能以一种语言,用在网页设计、手机 App 撰写、游戏程序设计、硬件自动控制、生物医学、大数据…等领域。简单一句话,就是「万用语言」。这对还没决定、或还不知道该走哪个领域的初学者来说,非常重要!没有人想花大把时间学会一个语言后,发现自己喜欢的领域用的是另一种语言,又含着眼泪带着微笑重头去学的。

Python 能做到「万用语言」的原因,莫过于他有丰富的「函式库(Library)」。所谓「函式库」,就是把别人事先写好的一些好用 Python 程序打成一包,允许你直接取用,而不必学习这些程序背后的写作原理。拿通俗一点的比喻,就像游戏软件内的「外挂」,直接使用后,可以让你不必花力气去打怪练功,就能取得高分或强力的装备。

举例来说,如果您想用 Python 写个网站,那就加挂 Django 这个函式库。里面已经有「建立账号」、「使用者登入」…等等写好的功能让你直接叫用,不必什么都得自己重头写。想写游戏,就加挂 PyGame。什么打光、旋转、碰撞侦测…人家都帮你写好了,写个三行直接叫用就行了!还在头痛想怎么同时间学两种程序语言,并且在 Android、iOS 双平台写手机 App 吗?不必了!用 Python + Kivy 函式库写出来的手机 App,让你能直上两大平台!想做个自走车还是机械手臂来玩玩?没问题!花个台币一千多元买块 Raspberry Pi 开发板,让你用内建的 Python 函式库控制 LED 灯、马达…等各种硬件电路!其它如生医领域的 DNA 序列研究、经济领域的大数据,Python 都有对应的「外挂(函式库)」供人直接取用。让你吹着口哨、比别人提早抵达终点。

缺点:执行缓慢

前面讲了 Python 这么多好话,它并不是完全没有缺点。Python 虽然适用于各行各业,但它有个致命伤:慢!

其实这点并不难理解。假设您有把里面有螺丝起子的瑞士刀,虽然它能拿来转螺丝,但没办法像专业的螺丝起子做得长长的,发挥强大的力矩杠杆作用,让螺丝转起来轻松容易。更别提有人拿笨重、但迅速的专业电动螺丝起子了。

Python 也是如此!所谓「追二兔不得一兔」,为了能在各种场合都发挥作用,就得取各种场合的「平衡点」,没办法为单一情况做「优化」!正如那把瑞士刀,虽然它能做各种事情,但不可能如专业工具称手。Python 的架构工程师,最后就做出「为了功能,牺牲效能」的决定。

不过最近几年,也有 Python 同好开发出「Python 编译程序」,就是直接把 Python 原始码,翻译成 0 与 1 来表示的软件。不过「编译程序」也不是万灵丹!经过实际测试,编译成二进制代码的 Python 某些时候跑得比 Java 还快,但某些场合又吊车尾。所以这完全看「Python 编译程序」的好坏。编译得好,就跑得快;编译得不好的部分,自然效能就差了点。

但有一派人士的说法:CPU 效能年年加快,Python 本身效能缓慢问题,应该能被新的 CPU 速度稍稍解决。所以我的看法,还是鼓励初学者不用太在意「速度」这件事,先把你想写的东西用 Python 写出来比较要紧!毕竟「先求有,再求好」。如果将来「速度」真的成了致命伤,到时候再来想想如何加速就可以了!

结论:学 Python,应用广,转台易!

所以,如果您是对自己比较没信心,或是还没决定走哪个领域的朋友,那就先学Python!不但好学,而且将来想转台到其它语言也快!但若您已经确定自己有兴趣的领域,比如「游戏程序设计」,那我会建议您直接学该领域的专用语言比较好。以「游戏程序设计」来说就是 C++。

对此,至此,不知您是否对 Python 有了更进一步的了解了呢~ 如果你想入门Python的话,可以看看PS下其他的入门教程,希望会对您有所帮助。

python的优点有哪些-python的优点和缺点是什么|python有哪些优缺点 - PS下相关推荐

  1. 简述python的优点_Python是什么及Python的优点和缺点

    前面提到,编程语言有"高低"之分,而高级语言又有诸多版本,比如 C .C++.Java 等,「Python」也是其中之一.Python 语言算得上一门"古老"的 ...

  2. python的优点有哪些-python的优点和缺点是什么?

    这是我在黑马程序员参加培训时,老师当时讲的Python的主要的优缺点,我当时做了笔记,可供大家参考~文末有自己刚开始入门Python学习时的资料,需要的自取! 优点 Python的定位是"优 ...

  3. python的优点-python的优点

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! sdk 3.0 实现了统一化,各个语言版本的 sdk具备使用方法相同.接口调用方 ...

  4. python的优点-Python语言的优势有哪些?

    现如今,python语言非常火热,对于python人才的需求量也在逐年攀升.那么,python语言的优势有哪些?下面我们了解下. Python语言主要有以下9个优势: (1)简单易学 Python是一 ...

  5. python的优点-python的功能与优缺点

    来源:Linux论坛 查看:5540 回复:6 想学习Python的人都会有一个困惑,那就是Python目前有两个版本Python2和Python3,Python2与Python3有何区别,两个版本该 ...

  6. python的优点有哪些-Python有哪些技术上的优点?比其他语言好在哪儿?

    原标题:Python有哪些技术上的优点?比其他语言好在哪儿? 作者:马克·卢茨(Mark Lutz) 导读:本文是对Python一些最优的技术特性的快速介绍,以解答初学者关心的问题并消除他们最常见的疑 ...

  7. python的优点有哪些-python语言有什么优势

    Python编程语言开发快,语言简洁,没那么多技巧,所以读起来很清楚容易! ython的用途:Python它通常应用于各种领域,是一种通用语言,无论是从网站.游戏开发.机器人,人工智能,大数据,云计算 ...

  8. Python的优点与缺点

    Python的优点 简单 Python的语法非常优雅,甚至没有像其他语言的大括号,分号等特殊符号,代表了一种极简主义的设计思想.阅读Python程序像是在读英语. 易学 Python入手非常快,学习曲 ...

  9. Python编程语言优点有哪些?

    对于我个人,我认为参加千锋学习班非常有意义,也非常有必要,因为它不仅让我充实了更多的理论知识,更让我开阔了视野,解放了思想,打动了内心.Python编程语言优点有哪些?下面就跟着千锋一起来看看! 无论 ...

最新文章

  1. nUnit,凑合着测试
  2. Java操作shell脚本
  3. python bind sock_python 在bind端口之后创建的socket如果不关闭的话会被回收吗?
  4. 卧槽!我随便写的一个 API 竟获得 2.5 亿的访问量...
  5. [Web开发] 微软的RSS协议扩展 - FeedSync 介绍 (2)
  6. python 获取文件夹所有文件列表_python获取文件夹下所有文件及os模块方法
  7. Eclipse build launcher 3具体步骤
  8. python物体跟着鼠标走_用Python写一个跟随鼠标运动的自定义窗口
  9. [Java并发编程实战] 简介
  10. MacOS下SVN的使用
  11. Android中resource参数变量使用
  12. 火山安卓定义全局变量【博客教学】
  13. 计算机操作系统答案(完整版)
  14. 代数拓扑\集合拓扑\代数拓扑\拓扑关系\拓扑结构_笔记
  15. AI--调用百度OCR文字识别API进行图片文字识别
  16. easyphp 12 mysql 启动_EasyPHP启用MYSQL报错
  17. 微软project服务器搭建,Project Server 2013 安装和部署概述
  18. 手机当ftp文件服务器,如何利用手机搭建移动FTP服务器?
  19. 实现Excel文件xls与xlsx格式批量互相转换
  20. Pycharm最强编辑器详细使用指南!

热门文章

  1. 剑指offer面试题41. 数据流中的中位数(二分查找)
  2. redis源码剖析(7):基础数据结构quicklist
  3. 使用 bash 脚本把 GCE 的数据备份到 GCS
  4. Git 基本分支规范
  5. copy 浅复制 与深复制
  6. 关于ashx的基本应用
  7. 慎用javascript:void(0) 【转】
  8. 在 Razor 中注册命名空间
  9. 控制图纸多线相交交点凸起(Control PolyLine Bulge open and close )
  10. 在mc中直接加aswing组件,该组件还需最后用validate()方法