你很有可能之前就听说过 Python,Python 目前已经是最流行的编程语言之一。无论在 IEEE Spectrum 编程语言排行榜还是 TIOBE 编程语言排行榜上,Python 都在很高的位置。
Python 是一种相当高级的语言,通常情况下,完成同一个任务,C 语言需要写 1000 行,使用 Python 只要 20~100 行。
虽然高级的 Python 程序设计有相当难度,但是 Python 依然对初学者很友好。在日常工作条件下,Python 相比其他语言更加简单易用。如果你对 Python 语言颇有兴趣,不妨花些时间看看这篇教程。
本教程假定读者已经学过 C/C++ 语言,在此基础上再学习 Python 语言。本教程通过对比这两个编程语言解释 Python 基础语法,因此略去了一些基础知识。此前没有学习过 C/C++ 的读者不建议看本篇教程。
Python 简介
Python 是一种解释型语言
对比 C/C++,Python 程序不需要编译即可运行,因此具有很强的跨平台性。另外,所有的命令都是逐行发送到 Python 解释器执行,不需要经过链接过程,因此代码顺序十分重要。
Python 是一种强类型语言
Python 代码规范化程度高,可读性强。
Python 应用领域广阔
Python 在 Web 应用后端开发、云基础设施建设、网络数据采集(爬虫)、自动化测试、数据分析、机器学习等领域都有着广泛的应用。
Python 也存在一些缺点
Python 执行效率稍低、代码无法加密以及框架太多,良莠不齐等。
如何学习 Python
基于已学编程语言,如与 C/C++ 对比
本次教程将主要从已学的 C/C++ 出发,讲解 Python 基本语法,大家也可以基于此学习流程控制、面向对象的编程方法(OOP)。
阅读 Python 教程
网络上 Python 教程良莠不齐,此处推荐
官方文档本身就是不错的教程, 见
观看视频学习,不建议,为什么?
观看视频更多是一种观察 + 模仿,而阅读文档是读书 + 思考,前者更适用于入门,但对于深入学习,往往后者效率更高。并且文档的时效性更强,有许多修正,需要培养阅读文档的能力。
多练习!!!
环境安装
首先,让我们来安装环境!
对 Windows 系统,推荐使用 Anaconda 环境,对 Linux 或 Mac OS 系统,推荐使用 Miniconda 环境。
为什么不使用纯 Python 环境呢?尽管 Anaconda 也有体积较大等缺点,但首先,纯 Python 环境包版本管理不便,例如进行机器学习时,学习他人代码往往需要不同版本的 TF 与 Pytorch,创建虚拟环境就可以很好解决这一问题;其次,纯 Python 环境需要自己安装需要数据科学必要的包。
如果你使用 Linux,那大概率你已经对 Python 安装相当熟练,因此本教程直接略去,只介绍 Windows 下 Anaconda 环境的安装。
Anaconda 安装步骤
- 下载 Anaconda 安装包
在清华大学开源镜像站下载,参见
- 添加环境变量
在安装过程中,可以选择是否将 Anaconda 添加入环境变量。如果你想要在 Windows 自带的命令提示符中运行 Python 或不想在安装其他软件时额外配置 Python/Conda 的路径,可以选择将 Anaconda 加入环境变量。
什么是环境变量?
环境变量可以认为是 Windows 搜索程序的路径,执行程序时,Windows 系统会在环境变量中逐个搜索,如果找不到,则会返回找不到可执行文件。
- 修改软件源
修改 conda 源,具体参见
修改 pip 源,具体参见
环境测试
- 打开命令提示符
- 输入如下命令
1 | conda activate base |
- 打开交互式命令行
试试输入 1124 ** 122
然后回车,这是在计算 1124 的 122 次方(于是你就获得了一个强大的计算器)
我不想在黑框框里编程!
可安装文本编辑器(或集成开发环境, IDE)
Python 脚本文件是纯文本文件,理论上只需要记事本即可编辑,编辑后即可使用 Python 解释器运行。但是记事本没有代码补全、代码高亮、代码警告等便于编程的功能。
- 使用 PyCharm
JetBrain 公司出品,堪称神器,参考
使用大学生身份可以申请专业版。
- 使用 VS Code
Microsoft 出品,支持多种编程语言,本身是个文本编辑器,可通过扩展支持各类 IDE 功能,参考
快速入门
第一个 Python 程序
新建文件,修改文件名及后缀名为 hello.py
用文本编辑软件或上文提到的 IDE 打开这个文件,添加内容
1 | print('Hello, world!') |
在此处打开命令提示符,输入 python hello.py
恭喜你写出了第一个 Python 程序!
即使是这样一个简单的程序,对比 C,Python 显得非常简洁。
1 |
|
Python 数据类型及变量
Python 是一种强类型语言同时也属于动态类型语言,Python 的变量具有明确的类型,虽然这种类型可以改变。
1 | a = 100 |
Python 中 #
后面写的内容不会被解释器执行,故 #
后内容为注释,类似于 C 中的 //
如果要使用多段注释,使用 '''
或 """
包裹注释,类似于 C 中的 /* 一些注释 */
1 | int a = 100; |
Python 运算符
Python 运算符与 C 差异不大,需要注意的是除法与 C 定义不同。Python 中 //
被称为 floor divide(除之后向下取整)
1 | a = 29 |
那么,Python 中 -1//2
与 C 中 -1/2
结果相同吗?
点击查看答案
Python 中 //
是除后向下取整,结果为 -1,C 的除法 /
采取截断,结果为 0。
1 | a = 10 |
1 | flag0 = 1 == 1 |
Python 有一个神奇的运算符,但并不推荐使用
1 | x = 10 |
为什么不推荐使用呢?C/C++ 的残留编程习惯可能会造成一些错误!比如说:
1 | print(False == False == False) # Is True or False? |
点击查看答案
True,因为其相当于 (False == False) and (False == False)
Python 类型转换
Python 是一种强类型语言, Python 的变量具有明确的类型,虽然这种类型可以改变。
1 | a = 100 |
1 |
|
Python 输入输出
输入输出比 C 更加便捷。
1 | print('The quick brown fox', 'jumps over', 'the lazy dog') |
Python 字符串及常用数据结构
Python 中,字符串格式化与 C 类似
1 | print('Hi, %s, you have $%d.' % ('Michael', 1000000)) |
Python 流程控制
Python 使用缩进来表示代码块,一般我们使用 4 个空格作为缩进,请不要使用 Tab!严禁混用。流程控制语句如以下例子,if
, for
, while
后有冒号: 请不要遗漏!
请不要在 Python 代码中使用 Tab!更不能将 Tab 与空格混用!
Tab 与空格混用 Python 解释器会直接抛出语法错误!
不使用 Tab 的主要理由是在不同的终端设备上, Tab 的显示出现行为并不相同,部分终端设备可能 Tab 等同于 8 个空格,部分终端设备只能每行显示 80 个字符,为了保证显示效果,最好使用空格替代 Tab。
如果你使用 VS Code,那么在右下角可以更改 Tab 对应的空格数量,并在设置中 Editor: Insert Spaces
勾选“按 Tab 时插入空格”选项,这样就可以使用 Tab 快速插入缩进空格。
1 | age = 28 |
1 | age = 3 |
1 | age = 3 |
1 | sum = 0 |
1 | sum = 0 |
Python 函数
Python 使用 def
关键字来定义函数
1 | def add(a, b): |
1 | def acc(a, b, c): |
读者可做一个小练习:编写一个函数 fib(n)
,返回第 n 个斐波那契数
Python 其他常用语法
交换两个对象的值
1 | a, b = b, a |
列表推导式
1 | print([x ** 2 for x in range(11)]) |
还有很多语法糖……
结语
本教程简要介绍了 Python 的安装及快速入门,实际上,知道这些内容已经可以编写具有一定实用性的程序了。
当然,Python 的内容非常庞杂,还有很多对编程有益的特性本篇教程并未覆盖,例如:Python 面向对象编程、字典、集合、dunder(魔术方法)、Python 包管理工具等等,这些内容将在后续教程中介绍。
欢迎大家阅读本站的 Python 教程Ⅱ,点击下面的连接即可访问。