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/pythonprint("Hello, World!")
Python 3.0+ 版本已经把 print 作为一个内置函数,python3 xxx.py输出 “Hello World!” 代码如下:
#!/usr/bin/python3print("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$ pythonPython 3.7.6 (default, Dec 30 2019, 19:38:28)[Clang 11.0.0 (clang-1100.0.33.16)] on darwinType "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 python3chmod +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. 安装之前```shell1.安装依赖 - 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_profileexport PATH="$PATH:/usr/local/Python-2.7.16/bin"#永久环境变量方式2#echo 'export PATH="$PATH:/usr/local/Python-2.7.16/bin"' >> ~/.bash_profilesource ~/.bash_profile#永久环境变量方式3echo 'alias python="/usr/local/Python-2.7.16/bin/python"' >> ~/.bash_profilesource ~/.bash_profile
⚠️注意: /usr/local/bin/python 是 Python 的安装目录
快速部署python环境
yum install -y gcc openssl-devel bzip2-develwget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgztar -zxvf Python-2.7.16.tgz && cd Python-2.7.16./configure --enable-optimizations --prefix=/usr/local/Python-2.7.16 && make installln -s /usr/local/Python-2.7.16/bin/python /usr/bin/python
