Python 是一种解释型、面向对象(完全支持继承、重载、多重继承)、动态数据类型的高级程序设计语言 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言 Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构 金典话语: 人生苦短,我用Python Life is short,you need Python
简介 | 详细描述 |
---|---|
Python 是一种解释型语言 | 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言 |
Python 是交互式语言 | 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码 |
Python 是面向对象语言 | 这意味着Python支持面向对象的风格或代码封装在对象的编程技术 |
Python 是一种解释型语言 | Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏 |
Python 发展历史
- Python 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。
- 由吉多-范罗苏母(Guido van Rossum) 于 1989 年底发明,第一个公开发行版发行于 1991 年
- Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等
- 像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议
- 现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展
- Python 2.0 于 2000 年 10 月 16 日发布,增加了实现完整的垃圾回收,并且支持 Unicode
- Python 3.0 于 2008 年 12 月 3 日发布,此版不完全兼容之前的 Python 源代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本
- Python 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级
- 官方宣布,2020 年 1 月 1 日, 停止 Python 2 的更新。Python 2.7 被确定为最后一个 Python 2.x 版本,它除了支持 Python 2.x 语法外,还支持部分 Python 3.1 语法
Python 特点
- 易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,代码像纯英语那样容易理解,学习起来更加简单
- 易于阅读:Python代码定义的更清晰
- 高效开发:适用于短期开发的日常任务。同一样问题,用不同的语言解决,代码量差距还是很多的,一般情况下 Python 是 Java 的 1/5,所以说 人生苦短,我用 Python
- 易于维护:Python的成功在于它的源代码是相当容易维护的
- 开源: 以便任何人都可以为它做贡献
- 一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容。Python 语言的核心只包含 数字、字符串、列表、字典、文件 等常见类型和函数,而由 Python 标准库提供了 系统管理、网络通信、文本处理、数据库接口、图形系统、XML 处理 等额外的功能
- 大量的第三方模块: 它们的功能覆盖 科学计算、人工智能、机器学习、Web 开发、数据库接口、图形系统 多个领域
- 互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断
- 可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台
- 可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用
- 数据库:Python提供所有主要的商业数据库的接口
- GUI编程:Python支持GUI可以创建和移植到许多系统调用
- 可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得”脚本化”的能力
Python 的优缺点
优点 | 缺点 |
---|---|
简单、易学 免费、开源 面向对象 丰富的库 可扩展性(如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把这部分程序用 C 或 C++ 编写,然后在 Python 程序中使用它们) …… |
运行速度 国内市场较小 中文资料匮乏 |
执行Python程序
以下代码为使用 python xxx.py 输出 “Hello World!”
#!/usr/bin/python
print("Hello, World!")
Python 3.0+ 版本已经把 print 作为一个内置函数,python3 xxx.py输出 “Hello World!” 代码如下:
#!/usr/bin/python3
print("Hello, World!")
Python 的解释器
语言的解释器 | 描述 | 地址 |
---|---|---|
CPython | 官方版本的 C 语言实现 | |
IPython | 是在 CPython 的基础之上在交互式方面得到增强的解释器 | http://ipython.org/ |
Jython | 可以运行在 Java 平台 | http://www.jython.org/ |
IronPython | 可以运行在 .NET 和 Mono 平台 | |
PyPy | Python 实现的,支持 JIT 即时编译 |
Python查看版本交互编程模式
#查看使用的Python版本〖我们可以在命令窗口(Windows 使用 win+R 调出 cmd 运行框)使用以下命令〗
python -V
#进入Python的交互式编程模式,查看版本
Ken-MacBook:~ kim$ python
Python 3.7.6 (default, Dec 30 2019, 19:38:28)
[Clang 11.0.0 (clang-1100.0.33.16)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
在 python 提示符中输入以下语句,然后按回车键查看运行效果
>>> print ("Hello, Python!");
Hello, Python!
>>> if flag:
... print("flag 条件为 True!")
...
flag 条件为 True!
以下为Python命令行参数:
选项 | 描述 |
---|---|
-d | 在解析时显示调试信息 |
-O | 生成优化代码 ( .pyo 文件 ) |
-S | 启动时不引入查找Python路径的位置 |
-V | 输出Python版本号 |
-X | 从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时。 |
-c cmd | 执行 Python 脚本,并将运行结果作为 cmd 字符串。 |
file | 在给定的python文件执行python脚本。 |
IPython交互编程模式
IPython 是一个 python 的 交互式 shell,比默认的 python shell 好用得多
IPython 中 的 “I” 代表 交互 interactive
IPython是基于 BSD 开源的
- 支持自动补全
- 自动缩进
- 支持 bash shell 命令
- 内置了许多很有用的功能和函数
- 可以使用Linux的终端命令
IPython快捷键
IPython快捷键 | 描述 |
---|---|
Ctrl+P | 或上箭头键 后向搜索命令历史中以当前输入的文本开头的命令 |
Ctrl+N | 或下箭头键 前向搜索命令历史中以当前输入的文本开头的命令 |
Ctrl+R | 按行读取的反向历史搜索(部分匹配) |
Ctrl+C | 中止当前正在执行的代码 |
Ctrl+A | 将光标移动到行首 |
Ctrl+E | 将光标移动到行尾 |
Ctrl+K | 删除从光标开始至行尾的文本 |
Ctrl+U | 清除当前行的所有文本译注12 |
Ctrl+F | 将光标向前移动一个字符 |
Ctrl+B | 将光标向后移动一个字符 |
Ctrl+L | 清屏 |
Ctrl+Shift+V | 从剪贴板粘贴文本 |
IPython退出解释器有以下两种方式
- 命令行直接输入 exit
- 使用热键退出 ctrl + d
脚本式编程
将如下代码拷贝至 hello.py文件中:
print ("Hello, Python!");
通过以下命令执行该脚本:
python3 hello.py
输出结果为:
Hello, Python!
在Linux/Unix系统中,你可以在脚本顶部添加以下命令让Python脚本可以像SHELL脚本一样可直接执行:
#在脚本顶部添加以下命令让Python脚本可以像SHELL脚本一样可直接执行
#! /usr/bin/env python3
chmod +x hello.py #然后修改脚本权限,使其有执行权限,命令如下:
./hello.py #执行以下命令
#输出结果为
Hello, Python!
编译器与解释器的区别
编译型语言 | 解释型语言 |
---|---|
程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用 程序执行效率高,依赖编译器,跨平台性差些。 如 C、C++ |
解释型语言编写的程序不进行预先编译,以文本方式存储程序代码,会将代码一句一句直接运行。 在发布程序时,看起来省了道编译工序,但是在运行程序的时候,必须先解释再运行 |
执行速度 编译型语言 > 解释型语言 跨平台性 编译型语言 < 解释型语言 |
Python开发工具
开发工具 | 介绍 |
---|---|
系统 | WIN7/8/10系统、 MacOS系统、 Windows 95/98/2000/XP Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX, 等等) |
IDE编辑器 | PyCharm Visual Studio Code |
Visual Studio Code
PyCharm
安装python
下载地址
Windows 系统下安装
3.9.0 | python-3.9.0.exe.zip |
---|---|
3.7.7 | python-3.7.7-amd64.exe.zip |
2.7.18 | python-2.7.18.amd64.msi python-2.7.18.msi |
在 Windows 设置环境变量
#临时环境变量, 在环境变量中添加Python目录:在命令提示框中(cmd) : 输入
path=%path%;C:\Python
#永久环境变量
右键点击"计算机",然后点击"属性"
然后点击"高级系统设置"
选择"系统变量"窗口下面的"Path",双击即可!
然后在"Path"行,添加python安装路径即可(我的D:\Python32),所以在后面,添加该路径即可。 ps:记住,路径直接用分号";"隔开!
最后设置成功以后,在cmd命令行,输入命令"python",就可以有相关显示
macOS 系统下安装
使用 Homebrew 安装
brew install python
使用 压缩包 安装
3.9.0 | python-3.9.0-macosx10.9.pkg |
---|---|
3.7.2 | python-3.7.2-macosx10.9.pkg |
2.7.18 | python-2.7.18-macosx10.9.pkg |
linux使用压缩包安装python
常规安装
- 打开WEB浏览器访问 https://www.python.org/downloads/source/
- 选择适用于 Unix/Linux 的源码压缩包
- 下载及解压压缩包 Python-3.x.x.tgz,3.x.x 为你下载的对应版本号
- 如果你需要自定义一些选项修改 Modules/Setup
- 以 Python3.6.1 版本为例: ```powershell tar -zxvf Python-3.6.1.tgz && cd Python-3.6.1 ./configure && make && make install
检查 Python3 是否正常可用:
python3 -V
<a name="Wi7ou"></a>
##### 全命令行安装
1. 安装之前
```shell
1.安装依赖 - pcre来解析正则表达式,使用bzlib对http包的内容进行gzip,openssl支持https(即在ssl协议上传输http),需要在linux安装openssl库
yum install -y gcc openssl-devel bzip2-devel
- 安装
```shell
2.1.下载 nginx-1.9.9 安装包,在root目录下执行
wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz
2.2.解压redis安装包并且进入redis目录
tar -zxvf Python-2.7.16.tgz && cd Python-2.7.16
2.3.编码安装
./configure —enable-optimizations —prefix=/usr/local/Python-2.7.16 && make install
make && make prefix=/usr/local/Python2.7 install
3. 创建软链接或者配置环境变量
```shell
#创建软链接
ln -s /usr/local/Python-2.7.16/bin/python /usr/bin/python
#临时环境变量
export PATH="$PATH:/usr/local/Python-2.7.16/bin"
#永久环境变量方式1
#在vim ~/.bash_profile 后写入以下代码 最后 source ~/.bash_profile
export PATH="$PATH:/usr/local/Python-2.7.16/bin"
#永久环境变量方式2
#echo 'export PATH="$PATH:/usr/local/Python-2.7.16/bin"' >> ~/.bash_profile
source ~/.bash_profile
#永久环境变量方式3
echo 'alias python="/usr/local/Python-2.7.16/bin/python"' >> ~/.bash_profile
source ~/.bash_profile
⚠️注意: /usr/local/bin/python 是 Python 的安装目录
快速部署python环境
yum install -y gcc openssl-devel bzip2-devel
wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz
tar -zxvf Python-2.7.16.tgz && cd Python-2.7.16
./configure --enable-optimizations --prefix=/usr/local/Python-2.7.16 && make install
ln -s /usr/local/Python-2.7.16/bin/python /usr/bin/python