【入门篇】3.Python是什么?Python软件基金会 版权限制 创造Python的理由 命名由来 优缺点 价值 职业 应用 发展历史 官方资源——《跟老吕学Python编程》
Python是一种什么样的语言?
Python是一种开源
1、跨平台
2、解释型
3、编译性
3、交互式
4、支持多种编程范式
5,包括过程式
5、面向对象
6和函数式
5,拥有动态数据类型
7和垃圾回收机制
8的高级
9脚本语言
10编程语言。
涉及到的专业术语还是挺多的,建议点击术语旁边的数字查看注脚的连接解释该术语的意义。
Python软件基金会是什么?
Python 软件基金会
(Python Software Foundation,简称PSF)是一个独立的致力于Python编程语言的非盈利组织,成立于2001年3月6日,它拥有Python2.x、Python3.x及以上各版本的版权。
PSF的使命
是推进与Python 编程语言相关的开源技术,并推广Python 的使用。
PSF主页
PSF提供捐助
向PSF提供捐助在美国是免税的。如果你在使用Python 并且感觉它对你很有帮助,可以通过PSF 捐助页进行捐助
使用Python是否存在版权限制?
非商业情况下,使用Python不存在版权限制,可以任意使用源码!
商业情况下,如果需要将Python用于商业领域以源码或二进制码的形式(不论是否经过修改)销售 Python 的副本,或是以某种形式包含了 Python 的产品,要求就是要你保留版权信息并在你基于 Python 的产品文档中显示该版权信息。
创造Python的理由是什么?
Python作者龟叔(Guido van Rossum)当年是这样说的:
我在 CWI 的 ABC 部门时在实现解释型语言方面积累了丰富经验,通过与这个部门成员的协同工作,我学到了大量有关语言设计的知识。 这是许多 Python 特性的最初来源,包括使用缩进来组织语句以及包含非常高层级的数据结构(虽然在 Python 中具体的实现细节完全不同)。
我对 ABC 语言有过许多抱怨,但同时也很喜欢它的许多特性。 没有可能通过扩展 ABC 语言(或它的实现)来弥补我的不满 —— 实际上缺乏可扩展性就是它最大的问题之一。 我也有一些使用 Modula-2+ 的经验,并曾与 Modula-3 的设计者进行交流,还阅读了 Modula-3 的报告。 Modula-3 是 Python 中异常机制所用语法和语义,以及其他一些语言特性的最初来源。
我还曾在 CWI 的 Amoeba 分布式操作系统部门工作。 当时我们需要有一种比编写 C 程序或 Bash 脚本更好的方式来进行系统管理,因为 Amoeba 有它自己的系统调用接口,并且无法方便地通过 Bash 来访问。 我在 Amoeba 中处理错误的经验令我深刻地意识到异常处理在编程语言特性当中的重要地位。
我发现,某种具有 ABC 式的语法而又能访问 Amoeba 系统调用的脚本语言将可满足需求。 我意识到编写一种 Amoeba 专属的语言是愚蠢的,所以我决定编写一种具有全面可扩展性的语言。
在 1989 年的圣诞假期中,我手头的时间非常充裕,因此我决定开始尝试一下。 在接下来的一年里,虽然我仍然主要用我的业余时间来做这件事,但 Python 在 Amoeba 项目中的使用获得了很大的成功,来自同事的反馈让我得以增加了许多早期的改进。
到 1991 年 2 月,经过一年多的开发,我决定将其发布到 USENET。 之后的事情就都可以在 Misc/HISTORY 文件里面看了。
Python 命名由来
Python作者龟叔(Guido van Rossum)在编写Python实现的时候同时还阅读了刚出版的 “Monty Python的飞行马戏团” 剧本,这是一部自 1970 年代开始播出的 BBC 系列喜剧。龟叔觉得他需要选择一个简短、独特而又略显神秘的名字,于是他决定将这个新语言命名为Python
。
Python的优点
- 开源:Python源代码公开,可以免费自由使用、复制、修改和再发布。
- 跨平台:Python跨操作系统可移植。
- 易于学习:Python是一种解释性编程语言,结构简单,和一个明确定义的语法,学习起来更加简单。
- 易于阅读:Python代码定义的更清晰。
- 易于维护:Python的成功在于它的源代码是相当容易维护的。
- 一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
- 互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
- 可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
- 可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
- 数据库:Python提供所有主要的商业数据库的接口。
- GUI编程:Python支持GUI可以创建和移植到许多系统调用。
- 可嵌入: 可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。
- 支持广泛: 支持广泛的应用程序开发,从简单的文字处理到服务器再到游戏,它都可以胜任。
Python的缺点
有优点就会有缺点,python作为一门解释型语言,拥有了解释型语言的优点(跨平台可移植性,动态变量等)也有解释型语言的缺点(效率较低)。
另外,python作为一门近乎万能的语言,就像瑞士军刀一样,他拥有很多功能,但在具体的功能上都不如一些专精的语言,当对性能有一定要求的时候,python不是好选择!
Python发展历史
Python的起源
Python的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中单词Python(意为大蟒蛇)作为该编程语言的名字,是因为英国20世纪70年代首播的电视喜剧《蒙提·派森的飞行马戏团》(Monty Python’s Flying Circus)。
ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido认为是其非开放造成的。Guido决心在Python中避免这一错误。同时,他还想实现在ABC中闪现过但未曾实现的东西。
就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响,并且结合了Unix shell和C的习惯。
Python版本发展史
自20世纪90年代初Python语言诞生至今,Python已被逐渐广泛应用于系统管理任务的处理和Web编程。
1995年,Guido van Rossum在弗吉尼亚州的国家创新研究公司(CNRI)继续他在Python上的工作,并在那里发布了该软件的多个版本。
2000年五月,Guido van Rossum和Python核心开发团队转到BeOpen.com并组建了BeOpen PythonLabs团队。同年十月,BeOpen PythonLabs团队转到Digital Creations(现为Zope Corporation)。
2001年,Python软件基金会(PSF)成立,这是一个专为拥有Python相关知识产权而创建的非营利组织。Zope Corporation是PSF的赞助成员。
Python已经成为最受欢迎的程序设计语言之一。自从2004年以后,python的使用率呈线性增长。
Python 2于2000年10月16日发布,稳定版本是Python 2.7。
Python 3于2008年12月3日发布,不完全兼容Python 2。
2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。
由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。
发布版本号 | 源自 | 年份 | 所有者 | GPL兼容 |
---|---|---|---|---|
Python 0.9.0至1.2 | n/a | 1991-1995 | CWI | 是 |
Python 1.3至1.5.2 | 1.2 | 1995-1999 | CNRI | 是 |
Python 1.6 | 1.5.2 | 2000 | CNRI | 否 |
Python 2.0 | 1.6 | 2000 | BeOpen.com | 否 |
Python 1.6.1 | 1.6 | 2001 | CNRI | 否 |
Python 2.1 | 2.0+1.6.1 | 2001 | PSF | 否 |
Python 2.0.1 | 2.0+1.6.1 | 2001 | PSF | 是 |
Python 2.1.1 | 2.1+2.0.1 | 2001 | PSF | 是 |
Python 2.1.2 | 2.1.1 | 2002 | PSF | 是 |
Python 2.1.3 | 2.1.2 | 2002 | PSF | 是 |
Python 2.2.0 | 2.1.1 | 2001年12月21日 | PSF | 是 |
Python 2.3.0 | - | 2003年7月29日 | PSF | 是 |
Python 2.4.0 | - | 2004年11月30日 | PSF | 是 |
Python 2.5.0 | - | 2006年9月19日 | PSF | 是 |
Python 2.6.0 | - | 2008年10月2日 | PSF | 是 |
Python 3.0.0 | - | 2008年12月3日 | PSF | 是 |
Python 3.1.0 | - | 2009年6月26日 | PSF | 是 |
Python 3.2.0 | - | 2011年2月20日 | PSF | 是 |
Python 3.3.0 | - | 2012年9月29日 | PSF | 是 |
Python 3.4.0 | - | 2014年3月17日 | PSF | 是 |
Python 3.5.0 | - | 2015年9月13日 | PSF | 是 |
Python 3.6.0 | - | 2016年12月23日 | PSF | 是 |
Python 3.7.1 | - | 2018年10月20日 | PSF | 是 |
Python 3.8.1 | - | 2019年12月18日 | PSF | 是 |
Python 3.9.0 | - | 2020年10月5日 | PSF | 是 |
Python 3.10.3 | - | 2022年3月16日 | PSF | 是 |
Python 3.11.0 | - | 2022年10月24日 | PSF | 是 |
Python 3.12.0 | - | 2023年10月2日 | PSF | 是 |
Python 3.13及更高 | - | 2024年至今 | PSF | 是 |
Python的价值
学Python可以做什么职业?
游戏开发工程师
网页设计师
Python开发者
全栈开发工程师
机器学习工程师
数据科学家
数据分析师
数据工程师
DevOps工程师
软件工程师
还有许多其他角色
Python可以做什么应用?
- 网站建设,以下网站应用了python进行web开发:
Youtube - 视频社交网站
Reddit - 社交分享网站
Dropbox - 文件分享服务 - Bottle - Python微Web框架
- EVE - 网络游戏EVE大量使用Python进行开发
- 测试方向- selenium和appium是功能测试的最佳伴侣,它们都支持python语言!
- Blender - 使用Python作为建模工具与GUI语言的开源3D绘图软件
- Inkscape - 一个开源的SVG矢量图形编辑器。
- 机器学习与人工智能 - TensorFlow,Keras,pytorch等机器学习库让python成为最适合机器学习的语言
- 数据分析与数据挖掘 - 各式各样的python爬虫可以帮助数据分析工程师获取数据,而丰富的python数据处理库可以处理这些数据并以可视化形式或者可调用形式展现出来
- 科学计算和算法设计 - 简单的语法让python更适合进行算法开发
- IDLE - 作为python安装时自带的IDE,这款IDE就是由 Guido van Rossum 使用python+tkinter写出来的。
- 其他 - 本文仅为培训文,大部分能想到的应用方向都写了,如果还有部分老吕未提及,您可以在评论区跟老吕说一下
Python官方资源
Python官方网站
Python下载
https://www.python.org/downloads/
Python文档
PSF主页
Python初学者指南
https://wiki.python.org/moin/BeginnersGuide
Python开发者指南
Python书籍
https://wiki.python.org/moin/PythonBooks
👨💻博主Python老吕说:如果您觉得本文有帮助,辛苦您🙏帮忙点赞、收藏、评论,您的举手之劳将对我提供了无限的写作动力!🤞
🔥精品付费专栏:《跟老吕学Python编程》、《Python游戏开发实战讲解》、《Python Web开发实战》、《Python网络爬虫实战》、《Python APP开发实战》
🌐前端:《HTML》、《CSS》、《JavaScript》、《Vue》
💻后端:《C语言》、《C++语言》、《Java语言》、《R语言》、《Ruby语言》、《PHP语言》、《Go语言》、《C#语言》、《Swift语言》、《跟老吕学Python编程·附录资料》
💾数据库:《Oracle》、《MYSQL》、《SQL》、《PostgreSQL》、《MongoDB》
3.3 开源是什么?软件 许可证 软件代表 开放源代码软件与自由软件的概念 定义 优缺点 优势 劣势 放弃权利 开源代表着放弃作品复制权 修改权 传播权——《跟老吕学Python编程》 ↩︎
3.4 跨平台是什么意思?跨平台释义 跨平台软件 数据库管理系统(DBMS) 网站服务器、应用程序服务器 网络浏览器 跨平台编程语言 跨平台详细解说 跨平台应用前景——《跟老吕学Python编程》 ↩︎
3.5 编程语言是什么? 解释型和编译型是什么? 解释型语言 编译型语言 编程语言有没有既是解释型又是编译型的呢? Python既是解释型的,又是编译型的——《跟老吕学Python编程》 ↩︎ ↩︎
3.6 编程开发里面说的“交互”、“交互式”是什么意思?交互例子 用Python跟计算机做个交互 加法举例 Python加减乘除举例 Python执行老吕的命令——《跟老吕学Python编程》 ↩︎
3.7 编程范式是什么?常见编程范式 命令式ImperativeProgramming 面向对象 函数 声明 过程 逻辑 并发 泛型 面向切面 响应 组合编程 事件驱动——《跟老吕学Python编程》 ↩︎ ↩︎ ↩︎
3.8 面向对象的编程语言是什么意思?定义 早期发展 背景 特征 开发方法 程序设计 分类 易混概念 审视问题域的视角 抽象级别 封装体 可重用性 基本思想 实现——《跟老吕学Python编程》 ↩︎
3.9 动态类型是什么?动态编程语言 动态编程语言特点 动态编程语言的优点 动态编程语言的缺点 静态编程语言 静态编程语言特点 静态编程语言的优点 静态编程语言的缺点——《跟老吕学Python编程》 ↩︎
3.10 Python垃圾回收机制是什么?引用计数 算法原理 计数器增减条件 引用计数+1-1的条件 优点与缺点 标记-清除 分代收集 分代收集原理 触发GC时机——《跟老吕学Python编程》 ↩︎
3.11 什么是高级编程语言?高层级动态数据类型 发展历程 特点 分类 命令式语言 函数 逻辑 面向对象 常见的高级编程语言及其特点和应用领域 性能分析 工作方式——《跟老吕学Python编程》 ↩︎
3.12 什么是脚本语言?概述 定义 简介 特点 优缺点 应用和发展情况 分类 工作控制语言Shell GUI脚本 应用程序定制的脚本语言 WEB 文本处理 通用动态语——《跟老吕学Python编程》 ↩︎