一、Python简介
谈及python,涉及两层意思,一层代表的是python这门语言的语法风格,另外一层代表的则是专门用来解释该语法风格的应用程序:python解释器。
python的创始人为吉多·范罗苏姆(Guido van Rossum)。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus,他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,语法能够像shell一样简洁,易学易用、可拓展性强,同时兼顾C的强大功能。于是Guido在1989年的圣诞节期间,开始编写能够解释Python语言语法的解释器。
Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。最新的TIOBE排行榜https://www.tiobe.com/tiobe-index/ ,Python已飙升至世界第一。
Python可以应用于众多领域,如:人工智能、数据分析、爬虫、金融量化、云计算、WEB开发、自动化运维/测试、游戏开发、网络服务、图像处理等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。
参考:
1、https://spectrum.ieee.org/the-top-programming-languages-2023
2、https://pypl.github.io/PYPL.html
3、https://www.tiobe.com/tiobe-index/
1、Python的历史
- 1989年圣诞节:Guido开始写Python语言的编译器。
- 1991年2月:第一个Python解释器诞生,它是用C语言实现的,可以调用C语言的库函数。
- 1994年1月:Python 1.0正式发布。
- 2000年10月:Python 2.0发布,Python的整个开发过程更加透明,生态圈开始慢慢形成。
- 2008年12月:Python 3.0发布,引入了诸多现代编程语言的新特性,但并不完全兼容之前的Python代码。
- 2009年6月,Python 3.1发布,引入了“类型注释”(Type Hints),支持在函数和方法的参数和返回值上添加类型信息。还引入了新的字典特性,如“字典拆分”(dict comprehension)和“有序字典”(collections.OrderedDict)。
- 2010年7月:Python 2.7发布,Python 2.7 是 2.x 系列的最后一个主要版本,因为 Python 维护者已将新功能开发工作的重点转移到 Python 3.x 系列。这意味着,虽然 Python 2 继续收到错误修复,并进行更新以在新硬件和受支持操作系统版本上正确构建,但该语言或标准库将不会发布新的完整功能版本。
- 2011年2月,Python 3.2发布,引入了“特性”(property),用于以声明方式定义属性的 getter、setter 和 deleter 方法。还引入了“生成器延迟”(generator delegation)和“上下文管理器协议”(context manager protocol)。
- 2012年9月,Python 3.3发布,引入了新的“上下文管理器”(context manager),用于自动管理资源,如文件、网络连接等。还引入了新的“with”语句语法,支持多个上下文管理器。
- 2014年3月,Python 3.4发布,引入了“匿名函数”(lambda)表达式,可以更方便地定义短小的函数。还引入了新的模块和函数,如“os.scandir”和“asyncio”。
- 2015年9月,Python 3.5发布,引入了“异步IO”(asyncio),支持异步编程和协程。还引入了新的语法特性,如“await”和“async for”。
- 2016年12月,Python 3.6发布,引入了新的“f-string”(格式化字符串字面量),支持在字符串中嵌入表达式和格式化信息。还引入了新的“赋值表达式”(assignment expression)语法,如“x = 1 if x > 0 else 0”。
- 2018年6月,Python 3.7发布,引入了新的“类型提示”(Type Hints)模块,支持在函数和方法的参数和返回值上添加类型信息。还引入了新的模块和函数,如“dataclasses”和“pathlib”。
- 2019年10月,Python 3.8发布,引入了新的“上下文管理器”(context manager),支持自动管理资源,如文件、网络连接等。还引入了新的模块和函数,如“importlib.util”和“statistics”。
- 2020年1月:在Python 2和Python 3共存了11年之后,官方停止了对Python 2的更新和维护,希望用户尽快过渡到Python 3。
- 2020年10月,Python 3.9发布,引入了新的“特性”(property),支持在类中定义属性的 getter、setter 和 deleter 方法。还引入了新的模块和函数,如“multiprocessing.sharedctypes”和“statistics.mean”。
- 2021年10月,Python 3.10发布,引入了新的“上下文管理器”(context manager),支持自动管理资源,如文件、网络连接等。还引入了新的模块和函数,如“concurrent.futures.process”和“statistics.pstdev”。
- 2022年10月,Python 3.11发布,Python 3.11 比 Python 3.10 快 10-60%。平均而言,在标准基准测试套件上测得速度提高了 1.25 倍。
- 2023年10月:Python 3.12发布。Python 3.12 是 Python 编程语言的最新稳定版本,对语言和标准库进行了一些更改。该库的更改侧重于清理已弃用的 API、可用性和正确性。值得注意的是,该
distutils
包已从标准库中删除。文件系统支持os
已经pathlib
有了许多改进,并且几个模块具有更好的性能。
说明:大多数软件的版本号一般分为三段,形如A.B.C,其中A表示大版本号,当软件整体重写升级或出现不向后兼容的改变时,才会增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(例如:修复了某个Bug),只要有修改就增加C。
2、Python的版本
目前企业中使用的主要版本还是2.x和3.X。
2.x最后一个版本是2.7,很多企业为了兼容老项目依然在维护。Python2将在2019年底不在支持,官方还提供了一个倒计时网站https://pythonclock.org/。
3.x还在不断的扩充发展,当前主流版本是3.9。
2015年9月发布3.5,2016年12月发布3.6,2018年6月发布3.7,2019年10月发布3.8,2020年10月发布3.9,2021年10月发布3.10,2022年10月发布3.11。
Python2和3的区别
- 语句函数化,例如print(1,2)打印出12,但是2.x中意思是print语句打印元组,3.x中意思是函数的2个参数
- 整除,例如1/2和1//2,3.x版本中/为自然除
- 3.x中raw_input重命名为input,不再使用raw_input
- round函数,在3.x中i.5的取整变为距离最近的偶数
- 3.x字符串统一使用Unicode
- 异常的捕获、抛出的语法改变
早几年,各主要国内外大公司都已经迁移到了Python3。很多重要的Python第三方库也陆续停止了对Python2的支持,所以,Python 3已经是必须学习的版本。2018年Python3的使用比例已经超过了85%。
在公司内,往往老项目维护维持2.x版本暂不升级,新项目使用3.x开发。开发时,使用3.6.6,部署时应尽量保持一致,不要随意升级版本,更不要降低版本。
不要迷信版本,学会一个版本,好好学会一门语言,其他都不是问题。
3、Python的优缺点
Python的优点很多,简单为大家列出几点。
- 简单明确,跟其他很多语言相比,Python更容易上手。
- 能用更少的代码做更多的事情,提升开发效率。
- 开放源代码,拥有强大的社区和生态圈。
- 能够做的事情非常多,有极强的适应性。
- 能够在Windows、macOS、Linux等各种系统上运行。
Python最主要的缺点是执行效率低,但是当我们更看重产品的开发效率而不是执行效率的时候,Python就是很好的选择。
4、Python的应用领域
目前Python在Web服务器应用开发、云基础设施开发、网络数据采集(爬虫)、数据分析、量化交易、机器学习、深度学习、自动化测试、自动化运维等领域都有用武之地。
二、安装Python环境
想要开始你的Python编程之旅,首先得在计算机上安装Python环境,简单的说就是得安装运行Python程序的工具,通常也称之为Python解释器。我们强烈建议大家安装Python 3的环境,很明显它是目前更好的选择。
可以在Python官方网站找到下载链接并下载Python 3的安装程序。
1、Linux安装
yum -y install python36
或者编译安装指定版本:https://www.python.org/downloads/source/
wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz
yum install zlib-devel-y
tar zxf Python-3.10.13.tgz
cd Python-3.10.13
./configure
make -j4 & make install
2、使用国内源
临时使用
可以在使用pip的时候加参数-i,这样就会从清华这边的镜像去安装库。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 软件包
永久使用
linux
~/.pip/pip.conf
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
windows
C:\Users\xxxusername\pip\pip.ini
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
其他源
清华:https://pypi.tuna.tsinghua.edu.cn/simple
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
三、Python解释器
官方的Python解释器本质就是基于C语言开发的一个软件,该软件的功能就是读取以.py结尾的文件内容,然后按照Guido定义好的语法和规则去翻译并执行相应的代码。这种用C实现的解释器称为CPython,它是python领域性能最好,应用最广泛的一款解释器,我们在后面提到的解释器指的都是Cpython解释器。但其实解释器作为一款应用软件,完全可以采用其他语言来开发,只要能解释python这门语言的语法即可。Python解释器的一些种类如下,简单了解即可
# Jython
JPython解释器是用JAVA编写的python解释器,可以直接把Python代码编译成Java字节码并执行,它不但使基于java的项目之上嵌入python脚本成为可能,同时也可以将java程序引入到python程序之中。
# IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。这就好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
# PyPy
PyPy是Python开发者为了更好地Hack Python而用Python语言实现的Python解释器。PyPy提供了JIT编译器和沙盒功能,对Python代码进行动态编译(注意不是解释),因此运行速度比CPython还要快。
# IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
四、IDE工具pycharm的使用
当你已经安装完python时,就可以安装IDE了,有一款工具能够集成n个软件的功能,同时又代码提示以及纠错等功能,那么将会极大地提升程序员的开发效率,这就是IDE的由来,IDE全称Integrated Development Environment,即集成开发环境,最好的开发Python程序的IDE就是PyCharm。
可以在pycharm官方网站找到下载链接并下载pycharm的安装程序。
以下为专业版
以下为开发者免费版(推荐)
下载完成后进行安装
五、总结
Python语言可以做很多的事情,也值得我们去学习。要使用Python语言,首先需要在自己的计算机上安装Python环境,也就是运行Python程序的Python解释器。
学习Python编程:
- Python官方文档:https://www.python.org/doc
- iPython:升级版的python解释器
- PyCharm:一款功能强大的Python集成开发环境
- Sublime:代码编辑器
- Jupyter notebook:在网页中编写和运行代码
- Pip:Python模块安装工具
安装辅助软件
pip install jupyter notebook
jupyter notebook
评论区