Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

Python的发展史

Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。

Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。

像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。

现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。

Python 2.7 被确定为最后一个 Python 2.x 版本,它除了支持 Python 2.x 语法外,还支持部分 Python 3.1 语法。

Python语言的特点

Python 特点:简单易学

Python 是一种代表简单注意思想的语言,阅读一个良好的 Python 程序,即使是在 Python 语法要求非常严格的大环境下,给人的感觉也像是在读英语段落一样。

换句话说,Python 编程语言最大的优点之一,是其具有伪代码的特质,它可以让我们在开发 Python 程序时,专注于解决问题,而不是搞明白语言本身。

Python 特点:开源

Python 是  FLOSS(自由/开源源码软件)之一,简单地理解就是,用户使用 Python 进行开发和发布自己编写的程序,不需要支付任何费用,也不用担心版权问题,即使作为商业用途,Python 也是免费的。

开源正在成为软件行业的一种发展趋势,现在有很多商业软件公司都开始将自己的产品变成开源的(例如 Java)。也许,Python 的开源正是它如此优秀的原因之一,因为会有这么一群人,他们希望看到一个更加优秀的 Python,从而为了这个目标,不断地对 Python 进行创造,不断地改进。

Python 特点:高级语言

Python 是高级语言,因此当使用 Python 语言编写程序时,我们无需再考虑一些底层细节方面的问题。例如,如何管理程序使用的内存等等。

Python 特点:解释型语言

一个用编译型语言(如 C 或 C++)写的程序,可以从源文件转换到一个计算机使用的语言。这个过程主要通过编译器完成。当运行程序的时候,我们可以把程序从硬盘复制到内存中并且运行。

而 Python 语言写的程序,则不需要编译成二进制代码,可以直接从源代码运行程序。在计算机内部,由 Python 解释器把源代码转换成字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。

事实上,由于不再担心如何编译程序,使得使用 Python 变得更加简单,我们只需要将 Python 程序复制到另外一台计算机上,它就可以工作了。因此,Python 程序更加易于移植。

Python 特点:可移植性

由于 Python 是开源的,它已经被移植到许多平台上。如果能够避免使用依赖系统的特性,那就意味着,所有 Python 程序都无需修改就可以在好多平台上运行,包括 Linux 、Windows、FreeBSD、Solaris 等等,甚至还有 PocketPC、Symbian 以及 Google 基于 Linux 开发的 Android 平台。

解释型语言几乎天生就是跨平台的。Python 作为一门解释型的语言,它天生具有跨平台的特征,只要为平台提供了相应的 Python 解释器,Python 就可以在该平台上运行。

Python 特点:面向对象

Python 既支持面向过程编程,也支持面向对象编程。在“面向过程”的语言中(如 C 语言),程序仅仅是由可重用代码的函数构建起来的;而在“面向对象”的语言(如 C++)中,程序是由数据和功能组合而成的对象构建起来的。

与其他编程语言(如 C++ 和 Java)相比,Python 是以一种非常强大,而又简单的方式实现的面向对象编程。

Python 特点:强大的功能

Python 强大的功能也许才是很多用户支持 Python 的最重要的原因,从字符串处理到复杂的 3D 图形编程,Python 借助扩展模块都可以轻松完成。

实际上,Python 的核心模块已经提供了足够强大的功能,使用 Python 精心设计的内置对象可以完成许多功能强大的操作。

此外,Python 的社区也很发达,即使一些小众的应用场景,Python 往往也有对应的开源模块来提供解决方案。

Python 特点:可扩展性

Python 的可扩展性体现为它的模块,Python 具有脚本语言中最丰富和强大的类库,这些类库覆盖了文件 I/O、GUI、网络编程、数据库访问、文本操作等绝大部分应用场景。

Python 可扩展性一个最好的体现是,当我们需要一段关键代码运行的更快时,可以将其用 C 或 C++ 语言编写,然后在 Python 程序中使用它们即可。

Python 为何被称为胶水语言?

先从Hello world开始。所有学python的童鞋都会从这句话开始:

print "Hello World!"。

问题来了:为什么所有语言第一件做的事情,就是Hello World?

其实,他代表了UNIX统一的文本处理模型及接口。这些个玩意,Windows的编程领域是很难接触到的也很难理解的。

下面写个范例。比如我这么干了:

# file: say.py

import sys

txt = sys.argv[1]

print "Hello %s!"%(txt)

那么我就可以在Linux或Mac的终端上直接输入:

python say.py World

输出结果就会是:

Hello World!

这样就确保了,在终端调用上的直观与可编程性。

这样,我就不用必须在别的python语言里面调用python了,而能够直接在shell上跟其它处理程序直接连接。

BTW,这其实也是Hello world,呵呵。

再玩复杂点的:

file: say2.py

import sys

for line in sys.stdin.readlines():

print "Hello %s!"%(line.strip())

那么我就可以在终端这么干:echo -e 'water/nmaomaol/nkenbing/nlonger/nchuang'|python say3.py

输出就会是:

Hello water!

Hello maomaol!

Hello kenbing!

Hello longer!

Hello chuang!

再进一步,我可以把前面的内容写成文件,比如写成一个这样的文件:

names.txt

water

maomaol

kenbing

longer

chuang

就可以直接更便捷地做处理:

cat names.txt | python say2.py 这样,我就用cat命令把文本打印出来,然后输出到say2.py上去了。

输出一样的结果。

但是,我输入到终端又有什么用呢???没错,到终端的确没啥用,我们把他输出到文件吧!

cat names.txt | python say2.py > result.txt

就这样,结果就保存到了result.txt这个文件里了。

这样做的意义是什么?

意义就是,在终端上我可以随意地组合他和其它程序,作为一个中间处理模块。

而且,他可以如此地简单便捷,一些简单的脚本只需要cat一下马上就能明白是什么意思。

一个表达式一行代码,代码块有一致的标准的缩进,标准的命名方式,简练的语言,支持注释……

别的程序要访问或调用,很简单,一个命令把指定数据输入到这里就好,然后要怎么拼接怎么拼接;

周期性地处理也没问题,输出到文件,等待别的程序调用。

比起windows各种诡异的processer,各种诡异的二进制存储的文件,这样一致的接口简直能让人想哭了。

系统脚本上:

他比SHELL多了很多数学及字符串处理能力,还多了很多很好用的迭代方法,还多了很多的原生的数据结构;

他比PERL多了很要命的代码可读性。

比起ruby和nodejs,他基本所有机器都预装,而且已经经历了时间的考验。虽然,将来的确会有被这俩货代替的可能性。

比起C/C++,他多了一个终端、甚至像ipython这样的加强版神器终端,可以边调试代码边把没问题的代码写进文件。而且,源码即可执行。

在我看来,这些就是python的优势。让他当之无愧是系统脚本的王者。

python是什么?为何被称为胶水语言?相关推荐

  1. python为什么被称为胶水语言_python为何称为胶水语言

    什么是胶水语言? 胶水语言(glue language)是用来连接软件组件的程序设计语言(通常是脚本语言). 胶水语言的例子: Shell scripts Python Ruby Lua Tcl Pe ...

  2. 为什么说python是世界上最好的语言-Python才是世界上最好的语言

    [文末领取限免课程] Python是人工智能的未来. 前不久中国经济学会(CEA)发布了顶级编程语言交互排行榜:Python超越Java高居首位. 而且随着大数据和人工智能的发展,Python受到了越 ...

  3. python 是什么类型的语言-python是一种什么类型的语言

    小时不识月,呼作白玉盘.很多人习惯地说Python不过是一种脚本语言而已,实际上这种说法是非常不准确的,完全不能体现出Python的强大. 严格来说,Python是一门跨平台.开源.免费的解释型高级动 ...

  4. Python才是世界上最好的语言

    [文末有福利] Python是人工智能的未来. 不同的编程有不同的应用场景和不同的使用场合,因此无法全面的评论哪种语言是最好的.但是各种不同的媒介还是每隔一段时间都会发布编程语言的热度排行榜.前不久电 ...

  5. python是最好的语言 永远二十岁_“Python才是世界上最好的语言”

    比如,举个最简单的例子,我们想输出"Hello, World!".用 C ++ 你需要这样写: #include int main() { std::cout << & ...

  6. python是什么类型的编程语言-python是一种什么类型的语言

    小时不识月,呼作白玉盘.很多人习惯地说Python不过是一种脚本语言而已,实际上这种说法是非常不准确的,完全不能体现出Python的强大. 严格来说,Python是一门跨平台.开源.免费的解释型高级动 ...

  7. python是一种语言吗-python是一种什么类型的语言

    小时不识月,呼作白玉盘.很多人习惯地说Python不过是一种脚本语言而已,实际上这种说法是非常不准确的,完全不能体现出Python的强大. 严格来说,Python是一门跨平台.开源.免费的解释型高级动 ...

  8. python是一种蟒蛇使用的语言_python树莓派系列教程一:初识大蟒蛇 python(python语言环境搭建篇)...

    作者:剑若游龙微信公众号<科学是什么东东>,欢迎关注 作者微信号,欢迎与我交流 网络爬虫,人工智能,机器学习,如何让计算机理解能力更强,如 何让你手中的机器人更人性化,更聪明? 不管是大人 ...

  9. python的胶水特性是怎样出来的_为什么说python是胶水语言

    胶水语言(glue language)是用来连接软件组件的程序设计语言(通常是脚本语言). 胶水语言的例子: Shell scripts Python Ruby Lua Tcl Perl PHP 参见 ...

最新文章

  1. 从前台页面取参数到sql的like中比较时参数的预处理
  2. mysql-视图,触发器,事物,函数,存储过程
  3. 六十五、下一个更大的数系列,单调栈解决方法
  4. java.lang.OutOfMemoryError:GC overhead limit exceeded
  5. 趣挨踢 | “菜鸟”程序员和“大神”程序员的差别竟然这么大...
  6. Host key verification failed. fatal: Could not read from remote repository.Please make sure you have
  7. enlink请输入正确服务器地址,Enlink
  8. Python爬虫实例(六)多进程下载金庸网小说
  9. 基于springboot2.0.6版本的TX-LCN分布式事务搭建说明
  10. XML注释内容中不能出现“--”
  11. 使用onenote记HTML笔记,以记录网页上的内容为例,教你如何利用OneNote 2010轻松记录笔记...
  12. linux系统vim程序编译器,linux学习日记七 vim程序编辑器使用
  13. 电大形考作业c语言答案,题目精编国家开放大学电大《管理信息系统》形考网络课作业1-4试题及答案...
  14. SAP 下载SMW0模板文件并附加数据导入到Excel示例
  15. win10 计算机 搜索文件夹,win10如何搜索文件或文件夹_win10怎么全盘搜索文件-win7之家...
  16. K8S日常问题-k8s中大量pod 状态 evicted
  17. SAP se11透明表添加字段时报错:字段级的结构更改(转换表xxxxxx)
  18. 00_51入门知识累计_C51简介
  19. 生化危机绝密报告2java,生化危机 绝密任务V2.1
  20. 春晚 “北帝” “东邪”

热门文章

  1. 超硬核之傅里叶公式推导(上)
  2. 【SSLGZ 2812】2017年10月30日提高组T2 凤凰院真凶
  3. 2022081班李亚楠20220926
  4. 麻省理工学院计算机研究生读几年,2020年麻省理工学院一年制硕士含金量
  5. 第九层(1):初识STL
  6. Chrome浏览器怎么安装插件
  7. 三子棋 Tic-Tac-Toe
  8. 华为鸿蒙的三大遗憾和一个好消息
  9. 点线面的意义_对点线面的认知
  10. 大数据分析方法:定性研究还是定量研究