《 转载于Python数据之道 - 本公众号秉承“让数据更有价值”的理念,主要分享数据相关的内容,包括数据分析,挖掘,可视化,机器学习,深度学习等。》                      =

"Life is short, you need Python"

让我们来了解一下Python吧

1 起源

Python 的创立者,Guido van Rossum,荷兰人。1982 年,Guido 从阿姆斯特丹大学获得了数学和计算机硕士学位。然而,尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣。用他的话说,尽管拥有数学和计算机双料资质,他总趋向于做计算机相关的工作,并热衷于做任何和编程相关的活儿。

Python的创始人吉多·范罗苏姆(Guido van Rossum),在1989年12月的圣诞节期间,为了打发时间,决定开发一种新的脚本解释程序,作为ABC语言的继承。1991年2月,第一个Python编译器诞生。现在,python以其优美,清晰,简单的特性在全世界广泛流行,成为最主流的编程语言之一。

Guido van Rossum 有一句著名的话就是 “Life is short, you need Python”,译为:“人生苦短,我用Python”。

截止至2017年11月,python在TIOBE流行编程语言排行榜,已经上升到第四名。并且从趋势图中可以看出其还在呈增长趋势。

2 为什么名字叫“Python”

我们知道英文单词 “Python” 的中文翻译是“蟒蛇”或者“巨蛇”的意思。但作为一名编程语言的名称,Python的初始意思并不是这样的。Python这个名字,来自Guido所挚爱的电视剧 "Monty Python’s Flying Circus" 。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。

3 Python的发展历史

  • Python 3.6 - 2016/12/23
  • Python 3.5 - 2015/09/13
  • Python 3.4 - 2014/03/16
  • Python 3.3 - 2012/09/29
  • Python 3.2 - 2011/02/20
  • Python 3.1 - 2009/06/27
  • Python 3.0 - 2008/12/03
  • Python 2.7 - 2010/07/03
  • Python 2.6 - 2008/10/1
  • Python 2.5 - 2006/09/19
  • Python 2.4 – 2004/11/30, 同年目前最流行的WEB框架Django 诞生
  • Python 2.0 - 2000/10/16,加入了内存回收机制,构成了现在Python语言框架的基础
  • 1999年 Python的web框架之祖——Zope 1发布
  • Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.
  • 1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
  • 1989年的圣诞节,Guido开始编写Python语言的编译器。

2014年11月,Python2.7 将在 2020 年停止支持的消息被发布,并且不会再发布 2.8版本,建议用户尽可能的迁移到3.4+, Python 最初发布时,在设计上有一些缺陷,比如 Unicode 标准晚于 Python 出现,所以一直以来对 Unicode 的支持并不完全,而 ASCII 编码支持的字符有限。例如: 对中文支持不好 Python3 相对 Python 早期的版本是一个较大的升级,Py3 在设计的时候没有考虑向下兼容,所以很多早期版本的 Python 的程序无法再 Py3 上运行。

4 Python语言的特点

1)简单易学

Python语言简洁、优雅,相比其他程序语言(比如:Java,C++等),Python语言更容易阅读和编写。Python语言使用起来很有趣,且该语言更多的是专注于解决方案而不是语法本身。

初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。

2)开源且免费

Python是一门开源的编程语言,可以免费使用,甚至可以用于商业用途。当然,你也可以提交相关贡献代码。 Python有一个庞大的社区来维护并保持快速发展。

3)可移植性

Python是跨平台的编程语言,它可以运行在 windows、Mac 和 各种 Linux/Unix 系统上。也就是说,假设在 windows 系统下编写的 Python 程序,在 Mac 或 Linux 系统下也是可以运行的。

4)开发效率非常高

Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。

5)高级语言

当你用Python语言编写程序的时候,你无需考虑诸如:如何管理你的程序使用的内存以及垃圾回收一类的底层细节。

6)可扩展性

如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

7)可嵌入性

你可以把Python代码嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

8)面向对象

Python中的一切都是对象。面向对象编程(OOP)可以帮助您直观地解决复杂的问题。有了OOP,你可以通过创建对象把这些复杂的问题划分成更小的集合。

5 Python语言的应用

5.1 Python语言的应用领域

Python被广泛的应用于诸多领域,比如:

  • 数据科学: 数据科学涉及领域很广,涉及到当前火热的人工智能领域。Python的数据科学包括数据分析、数据可视化、数据挖掘、自然语言处理、机器学习、深度学习等。典型的Python库有:Numpy,Scipy,Pandas,Matplotlib,Seaborn,Scikit-learn,tensorflow等。
  • 云计算: 典型应用——Python开发的OpenStack
  • WEB开发: 众多优秀的WEB框架,比如:Django、flask、 tornado
  • 网络爬虫: 使用Python可以便捷的编写网络爬虫,从网页上爬取相关信息,常用的Python库包括:Requests,BeautifulSoup,Scrapy等。
  • 系统运维: 运维人员必备,slatstack(系统自动化配置和管理工具),Ansible(自动化运维工具)
  • 图形界面开发:  wxPython、PyQT、TKinter

5.2 使用Python的部分知名公司

越来越多的公司选在python作为其主要开发语言,例如:

  • Google - Google Groups、Gmail、Google Maps、AlphaGo等,Google App Engine支持python作为开发语言
  • NASA - 美国宇航局,从1994年起把python作为主要开发语言
  • Dropbox - 美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
  • 豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站
  • BitTorrent - bt下载软件客户端
  • gedit - Linux平台的文本编辑器
  • GIMP - Linux平台的图像处理软件(Linux下的PS)
  • 知乎(国外的Quora) - 社交问答网站,国内最大的问答社区,通过Python开发
  • Autodesk Maya - 3D建模软件,支持python作为脚本语言
  • YouTube:世界上最大的视频网站YouTube就是用Python开发的
  • Facebook:大量的基础库均通过Python实现的
  • Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的

除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。

更多案例: https://www.python.org/about/success/

6 Python语言的一些缺点

任何编程语言都有缺点,Python也不例外。比如:

  • 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运行一个程序花了0.1s,用Python是0.01s,这样C语言直接比Python快了10s,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。

***随着硬件设备及计算力的增强,运行速度慢的这个缺点相对来说有所改善。在编写代码所花时间与程序运行所用时间进行平衡后,很多企业都开始选择使用Python。***

  • 代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。

7 Python2还是Python3?

py2.7是2.x系列的最后一个版本,已经停止开发,不再增加新功能。2020年终止支持。所有的最新的标准库的更新改进,只会在3.x的版本里出现。Guido决定清理Python2.x ,并且不再兼容旧版本。

最大的一个改变就是使用Unicode作为默认编码。Pyhton2.x中直接写中文会报错,Python3中可以直接写中文了。

py3比py2更规范统一、去掉了没必要的关键字。Python3.x还在持续改进。所以还是 推荐使用Python3.x

5分钟了解Python语言的简单介绍(转载)的更多相关文章

  1. python shutil模块简单介绍

    python shutil模块简单介绍 简介 shutil模块提供了大量的文件的高级操作.特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作. shutil 模块方法: copy(src, ...

  2. python之pandas简单介绍及使用(一)

    python之pandas简单介绍及使用(一) 一. Pandas简介1.Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据 ...

  3. Python -- Scrapy 框架简单介绍(Scrapy 安装及项目创建)

    Python -- Scrapy 框架简单介绍 最近在学习python 爬虫,先后了解学习urllib.urllib2.requests等,后来发现爬虫也有很多框架,而推荐学习最多就是Scrapy框架 ...

  4. Python+selenium之简单介绍unittest单元测试框架

    Python+selenium之简单介绍unittest单元测试框架 一.unittest简单介绍 unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是 ...

  5. python+selenium之简单介绍继承

    python+selenium之简单介绍继承 一.此例简单的介绍一下继承 1.面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制.继承完全可以理解成类之间的类型和子类型 ...

  6. [python之路]简单介绍

    python介绍 #python是一个什么样的语言?编译型和解释型静态语言和动态语言强类型定义语言和弱类型定义语言python是一门动态解释性的强类型定义语言. #Python的优缺点##优点Pyth ...

  7. python numpy 模块简单介绍

    用python自带的list去处理数组效率很低, numpy就诞生了, 它提供了ndarry对象,N-dimensional object, 是存储单一数据类型的多维数组,即所有的元素都是同一种类型. ...

  8. python——Pycharm的简单介绍

    一.什么是Pycharm? Pycharm是一种python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自 ...

  9. python paramiko 模块简单介绍

    背景,公司的很多服务包括数据库访问都需要通过跳板机访问,为日常工作及使用带来了麻烦,特别数python直接操作数据更是麻烦了,所以一直想实现python 通过跳板机访问数据库的操作. 首先了解到了 p ...

随机推荐

  1. leetcode笔记:Longest Substring Without Repeating Characters

    一. 题目描写叙述 Given a string, find the length of the longest substring without repeating characters. For ...

  2. 万恶之源:C语言中的隐式函数声明

    1 什么是C语言的隐式函数声明 在C语言中,函数在调用前不一定非要声明.如果没有声明,那么编译器会自己主动依照一种隐式声明的规则,为调用函数的C代码产生汇编代码.以下是一个样例: int main(i ...

  3. web爬虫之登录google paly 商店

    我们先打开Google play 首页 ,点击右上角"登陆"button,即跳到登陆页面 每次我要用爬虫的方式来登陆某个站点的时候,我都会先随便输入一个账号password点击登陆 ...

  4. 安卓版本和Api Level

    Platform Version API Level VERSION_CODE Notes Android 4.4 19 KITKAT Platform Highlights Android 4.3 ...

  5. leetcode 400 Add to List 400. Nth Digit

    Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... Note:n is ...

  6. 如何完成DEDE CMS外部数据库调用|不同数据库调用数据

    dedecms如何完成2个数据库内容彼此调用?这是笔者今日要和我们共享的内容.百度了一大堆,大多语焉不详.常识有限,所以就说下笔者的做法, 能够还有其他有用的办法,欢送共享.笔者站点是dedecms5 ...

  7. Golang1.8编译静态库给C使用

    Go实例代码: package main import ( "fmt" ) import "C" //export Printf func Printf(for ...

  8. Android开发之自定义对话框

    由于系统自带的对话框不好看,于是本人就自定义了一个对话框,以后有类似的就可以直接使用啦.先上效果图: 1,布局文件dialog_clear_normal.xml <?xml version=&q ...

  9. bzoj2442 修剪草坪——单调队列

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2442 设 f[i] 为答案,则有 f[i] = max { f[j] - s[j+1] } ...

  10. Gitlab+Gerrit+Jenkins完整对接

    近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...