Python语言介绍就够了——学习笔记(十二万字)
友情提示:先注意收藏,再查看,12万字保姆级 Python语言从入门到精通教程。
文章目录
- Python语言介绍就够了——学习笔记(十二万字)
- 认识 Python
-
- 目标
- 01. Python 的起源
-
- 1.1 解释器(科普)
-
- 对比编译语言和解释语言
- 1.2 Python 设计目标
- 1.3 Python 设计哲学
- 02. 为什么选择 ?Python?
- 03. Python 特点
-
- 面向对象的思维方式
- 04. Python 的优缺点
-
- 4.1 优点
- 4.2 缺点
- 第一个 Python 程序
-
- 目标
- 01. 第一个 `HelloPython` 程序
-
- 1.1 Python 源程序的基本概念
- 1.2 演练步骤
- 1.3 演练扩展 - 错误(BUG)
-
- 关于错误
- 第一次演练中常见的错误
- 单词列表
- 02. `Python 2.x` 与 `3.x` 版本简介
- 03. 执行 Python 程序的三种方式
-
- 3.1. 解释器 `python` / `python3`
-
- Python 的解释器
-
- 其他解释器(知道)
- 3.2. 交互式运行 Python 程序
-
- 1) 交互式操作 Python 的优缺点
-
- 优点
- 缺点
- 2) 退出 官方解释器
-
- 1> 直接输入 `exit()`
- 2> 用热键退出
- 3) IPython
-
- 特点
- 版本
- 1> 直接输入 `exit`
- 2> 用热键退出
- IPython 的安装
- 3.3. Python 的 IDE —— `PyCharm`
-
- 1) 集成开发环境(IDE)
- 2)PyCharm 介绍
- 3)PyCharm 快速体验
- PyCharm 的初始设置(知道)
-
- 目标
- 01. 恢复 PyCharm 初始设置
- 02. 第一次启动 PyCharm
-
- 2.1 导入配置信息
- 2.2 选择许可协议
- 2.3 PyCharm 配置初始界面
- 2.4 欢迎界面
- 03. 新建/打开一个 Python 项目
-
- 3.1 项目简介
- 3.2 打开 Python 项目
-
- 设置项目使用的解释器版本
- 3.3 新建项目
-
- 1) 命名规则
- 2) 演练步骤
- 04. 设置 PyCharm 字体显示
- 05. PyCharm 升级等
-
- 5.1 安装和启动步骤
- 5.2 设置专业版启动图标
- 5.3 卸载前版本的 PyCharm
-
- 1) 程序安装
- 二、 程序卸载
- 5.4 教育版安装演练
-
- 设置启动图标
- 演练多文件项目
-
- 目标
- 多文件项目演练
-
- 提示
- 注释
-
- 目标
- 01. 注释的作用
- 02. 单行注释(行注释)
-
- 添加到代码后面的单行注释
- 03. 多行注释(块注释)
-
- 什么时候需要注释?
- 关于代码规范
- 算数运算符
-
- 目标
- 01. 算数运算符
- 02. 算数运算符的优先级
- 程序执行原理(科普)
-
- 目标
- 01. 计算机大件
-
- 思考题
- 02. 程序执行原理
-
- 2.1 Python 程序执行原理
-
- Python 的解释器有多大?
- 03. 程序的作用
-
- 3.1 思考 QQ 程序启动过程
- 3.2 思考 QQ 程序的 **登录** 过程
-
- 思考 1
- 思考 2
- 思考 3
- 变量的基本使用
-
- 目标
- 01. 变量定义
-
- 1) 变量演练1 —— iPython
- 2) 变量演练 2 —— PyCharm
- 3) 变量演练 3 —— 超市买苹果
-
- 思考题
- 02. 变量的类型
-
- 2.1 变量类型的演练 —— 个人信息
- 2.2 变量的类型
- 2.3 不同类型变量之间的计算
-
- 1) **数字型变量** 之间可以直接计算
- 2) **字符串变量** 之间使用 `+` 拼接字符串
- 3) **字符串变量** 可以和 **整数** 使用 `*` 重复拼接相同的字符串
- 4) **数字型变量** 和 **字符串** 之间 **不能进行其他计算**
- 2.4 变量的输入
-
- 1) 关于函数
- 2) input 函数实现键盘输入
- 3) 类型转换函数
- 4) 变量输入演练 —— 超市买苹果增强版
-
- 演练方式 1
- 演练方式 2 —— 买苹果改进版
- 2.5 变量的格式化输出
-
- 格式化输出演练 —— 基本练习
- 课后练习 —— 个人名片
- 变量的命名
-
- 目标
- 0.1 标识符和关键字
-
- 1.1 标识符
- 1.2 关键字
- 02. 变量的命名规则
-
- 驼峰命名法
- 判断(if)语句
-
- 目标
- 01. 开发中的应用场景
-
- 程序中的判断
- 判断的定义
- 程序中的判断
- 02. if 语句体验
-
- 2.1 if 判断语句基本语法
- 2.2 判断语句演练 —— 判断年龄
- 2.3 else 处理条件不满足的情况
- 2.4 判断语句演练 —— 判断年龄改进
- 03. 逻辑运算
-
- 3.1 `and`
- 3.2 `or`
- 3.3 `not`
-
- 逻辑运算演练
- 04. if 语句进阶
-
- 4.1 `elif`
-
- elif 演练 —— 女友的节日
- 4.2 `if` 的嵌套
-
- if 的嵌套 演练 —— 火车站安检
- 05. 综合应用 —— 石头剪刀布
-
- 5.1 基础代码实现
- 5.2 随机数的处理
- 运算符
-
- 目标
- 01. 算数运算符
- 02. 比较(关系)运算符
- 03. 逻辑运算符
- 04. 赋值运算符
- 05. 运算符的优先级
- 循环
-
- 目标
- 01. 程序的三大流程
- 02. `while` 循环基本使用
-
- 2.1 `while` 语句基本语法
-
- 第一个 while 循环
- 死循环
- 2.2 赋值运算符
- 2.3 Python 中的计数方法
- 2.4 循环计算
-
- 需求进阶
- 03. break 和 continue
-
- 3.1 break
- 3.2 continue
- 04. `while` 循环嵌套
-
- 4.1 循环嵌套
- 4.2 循环嵌套演练 —— 九九乘法表
-
- 第 1 步:用嵌套打印小星星
- 第 2 步:使用循环嵌套打印小星星
- 第 3 步: 九九乘法表
- 函数基础
-
- 目标
- 01. 函数的快速体验
-
- 1.1 快速体验
- 02. 函数基本使用
-
- 2.1 函数的定义
- 2.2 函数调用
- 2.3 第一个函数演练
-
- 思考
- 2.4 PyCharm 的调试工具
- 2.5 函数的文档注释
- 03. 函数的参数
-
- 3.1 函数参数的使用
- 3.2 参数的作用
- 3.3 形参和实参
- 04. 函数的返回值
- 05. 函数的嵌套调用
-
- 函数嵌套的演练 —— 打印分隔线
- 06. 使用模块中的函数
-
- 6.1 第一个模块体验
-
- 体验小结
- 6.2 模块名也是一个标识符
- 6.3 Pyc 文件(了解)
- 高级变量类型
-
- 目标
-
- 知识点回顾
- 01. 列表
-
- 1.1 列表的定义
- 1.2 列表常用操作
-
- del 关键字(科普)
- 关键字、函数和方法(科普)
- 1.3 循环遍历
- 1.4 **应用场景**
- 02. 元组
-
- 2.1 元组的定义
-
- 创建空元组
- 元组中 **只包含一个元素** 时,需要 **在元素后面添加逗号**
- 2.2 元组常用操作
- 2.3 循环遍历
- 2.4 应用场景
-
- 元组和列表之间的转换
- 03. 字典
-
- 3.1 字典的定义
- 3.2 字典常用操作
- 3.3 循环遍历
- 3.4 **应用场景**
- 04. 字符串
-
- 4.1 字符串的定义
- 4.2 字符串的常用操作
-
- 1) 判断类型 - 9
- 2) 查找和替换 - 7
- 3) 大小写转换 - 5
- 4) 文本对齐 - 3
- 5) 去除空白字符 - 3
- 6) 拆分和连接 - 5
- 4.3 字符串的切片
-
- 索引的顺序和倒序
- 05. 公共方法
-
- 5.1 Python 内置函数
- 5.2 切片
- 5.3 运算符
-
- 成员运算符
- 5.4 完整的 for 循环语法
-
- 应用场景
- 高级变量类型
-
- 目标
-
- 知识点回顾
- 01. 列表
-
- 1.1 列表的定义
- 1.2 列表常用操作
-
- del 关键字(科普)
- 关键字、函数和方法(科普)
- 1.3 循环遍历
- 1.4 **应用场景**
- 02. 元组
-
- 2.1 元组的定义
-
- 创建空元组
- 元组中 **只包含一个元素** 时,需要 **在元素后面添加逗号**
- 2.2 元组常用操作
- 2.3 循环遍历
- 2.4 应用场景
-
- 元组和列表之间的转换
- 03. 字典
-
- 3.1 字典的定义
- 3.2 字典常用操作
- 3.3 循环遍历
- 3.4 **应用场景**
- 04. 字符串
-
- 4.1 字符串的定义
- 4.2 字符串的常用操作
-
- 1) 判断类型 - 9
- 2) 查找和替换 - 7
- 3) 大小写转换 - 5
- 4) 文本对齐 - 3
- 5) 去除空白字符 - 3
- 6) 拆分和连接 - 5
- 4.3 字符串的切片
-
- 索引的顺序和倒序
- 05. 公共方法
-
- 5.1 Python 内置函数
- 5.2 切片
- 5.3 运算符
-
- 成员运算符
- 5.4 完整的 for 循环语法
-
- 应用场景
- 综合应用 —— 名片管理系统
-
- 目标
- 系统需求
- 步骤
- 01. 框架搭建
-
- 1.1 文件准备
- 1.2 编写主运行循环
-
- 字符串判断
- pass
- 无限循环
- TODO 注释
- 1.3 在 `cards_tools` 中增加四个新函数
- 1.4 导入模块
- 1.5 完成 `show_menu` 函数
- 02. 保存名片数据的结构
-
- 定义名片列表变量
- 03. 新增名片
-
- 3.1 功能分析
- 3.2 实现 new_card 方法
- 04. 显示所有名片
-
- 4.1 功能分析
- 4.2 基础代码实现
- 4.3 增加标题和使用 `\t` 显示
- 4.4 增加没有名片记录判断
- 05. 查询名片
-
- 5.1 功能分析
- 5.2 代码实现
- 06. 修改和删除
-
- 6.1 查询成功后删除名片
- 6.2 修改名片
-
- 修改名片细化
- 07. LINUX 上的 `Shebang` 符号(`#!`)
-
- 使用 Shebang 的步骤
- 变量进阶(理解)
-
- 目标
- 01. 变量的引用
-
- 1.1 引用的概念
- 1.2 `变量引用` 的示例
- 1.3 函数的参数和返回值的传递
- 02. 可变和不可变类型
-
- 哈希 `(hash)`
- 03. 局部变量和全局变量
-
- 3.1 局部变量
-
- 局部变量的作用
- 局部变量的生命周期
- 3.2 全局变量
-
- 1) 函数不能直接修改 `全局变量的引用`
- 2) 在函数内部修改全局变量的值
- 3) 全局变量定义的位置
- 4) 全局变量命名的建议
- 函数进阶
-
- 目标
- 01. 函数参数和返回值的作用
-
- 1.1 无参数,无返回值
- 1.2 无参数,有返回值
- 1.3 有参数,无返回值
- 1.4 有参数,有返回值
- 02. 函数的返回值 进阶
-
- 示例 —— 温度和湿度测量
- 面试题 —— 交换两个数字
-
- 解法 1 —— 使用其他变量
- 解法 2 —— 不使用临时变量
- 解法 3 —— Python 专有,利用元组
- 03. 函数的参数 进阶
-
- 3.1. 不可变和可变的参数
-
- 面试题 —— `+=`
- 3.2 缺省参数
-
- 指定函数的缺省参数
- 缺省参数的注意事项
-
- 1) 缺省参数的定义位置
- 2) 调用带有多个缺省参数的函数
- 3.3 多值参数(知道)
-
- 定义支持多值参数的函数
- 多值参数案例 —— 计算任意多个数字的和
- 元组和字典的拆包(知道)
- 04. 函数的递归
-
- 4.1 递归函数的特点
- 4.2 递归案例 —— 计算数字累加
认识 Python
人生苦短,我用 Python —— Life is short, you need Python
目标
- Python 的起源
- 为什么要用 Python?
- Python 的特点
- Python 的优缺点
01. Python 的起源
Python 的创始人为吉多·范罗苏姆(Guido van Rossum)
- 1989 年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的,作为 ABC 语言的一种继承()
- ABC 是由吉多参加设计的一种教学语言,就吉多本人看来,ABC 这种语言非常优美和强大,是。但是 ABC 语言并没有成功,究其原因,吉多认为是造成的。吉多决心在 Python 中避免这一错误,并获取了非常好的效果
- 之所以选中 Python(蟒蛇) 作为程序的名字,是因为他是 BBC 电视剧——蒙提·派森的飞行马戏团(Monty Python’s Flying Circus)的爱好者
- 1991 年,第一个 Python 诞生,它是用 C 语言实现的,并能够调用 C 语言的库文件
1.1 解释器(科普)
,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序。
编译器翻译的方式有两种:一个是,另外一个是。两种方式之间的区别在于。当编译器,也称之为
- :程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如 C、C++
- :解释型语言编写的程序不进行预先编译,以文本方式存储程序代码,会将代码一句一句直接运行。在发布程序时,看起来省了道编译工序,但是在运行程序的时候,必须先解释再运行
编译型语言和解释型语言对比
- —— 编译型语言比解释型语言执行速度快
- —— 解释型语言比编译型语言跨平台性好
1.2 Python 的设计目标
1999 年,吉多·范罗苏姆向 DARPA 提交了一条名为 “Computer Programming for Everybody” 的资金申请,并在后来说明了他对 Python 的目标:
- 一门并与主要竞争者一样强大
- ,以便任何人都可以为它做贡献
- 代码
- 适用于开发的日常任务
这些想法中的基本都已经成为现实,Python 已经成为一门流行的编程语言
1.3 Python 的设计哲学
- 优雅
- 明确
- 简单
- Python 开发者的哲学是:
- 如果面临多种选择,Python 开发者一般会拒绝花俏的语法,而选择
在 Python 社区,吉多被称为“仁慈的独裁者”
02. 为什么选择 Python?
- 代码量少
- ……
同一样问题,用不同的语言解决,代码量差距还是很多的,一般情况下
Python
是Java
的 ,所以说
03. Python 特点
- Python 是
- 、、、都是对象,
- 完全支持继承、重载、多重继承
- 支持重载运算符,也支持泛型设计
- Python ,Python 语言的核心只包含 、、、、 等常见类型和函数,而由 Python 标准库提供了 、、、、、 等额外的功能
- Python 社区提供了,使用方式与标准库类似。它们的功能覆盖 、、、、、 多个领域
面向对象的思维方式
- 是一种 ,也是一门
- 要解决一个问题前,首先考虑 来做,怎么做事情是 的职责,最后把事情做好就行!
- 就是
- 要解决复杂的问题,就可以找,,共同实现,最终完成需求
04. Python 的优缺点
4.1 优点
- 简单、易学
- 免费、开源
- 丰富的库
- 可扩展性
- 如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把这部分程序用
C
或C++
编写,然后在Python
程序中使用它们
- 如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把这部分程序用
- ……
4.2 缺点
- 运行速度
- 国内市场较小
- 中文资料匮乏
第一个 Python 程序
目标
- 第一个
HelloPython
程序 Python 2.x
与3.x
版本简介- 执行
Python
程序的三种方式- 解释器 ——
python
/python3
- 交互式 ——
ipython
- 集成开发环境 ——
PyCharm
- 解释器 ——
01. 第一个 HelloPython
程序
1.1 Python 源程序的基本概念
- Python 源程序就是,可以做
Python
的开发 - Python 程序的 通常都是
.py
1.2 演练步骤
- 在桌面下,新建
认识Python
目录 - 在
认识Python
目录下新建01-HelloPython.py
文件 - 使用 编辑
01-HelloPython.py
并且输入以下内容:
print("hello python")print("hello world")
- 在终端中输入以下命令执行
01-HelloPython.py
$ python 01-HelloPython.py
python
中我们学习的第一个
1.3 演练扩展 —— 认识错误(BUG)
关于错误
- 编写的程序,或者
- 俗称
BUG
,是程序员在开发时非常常见的,初学者常见错误的原因包括:- 手误
- 对已经学习过的知识理解还存在不足
- 对语言还有需要学习和提升的内容
- 在学习语言时,不仅要,而且还要
每一个程序员都是在不断地修改错误中成长的
第一个演练中的常见错误
- 1> ,例如使用
pirnt("Hello world")
NameError: name 'pirnt' is not defined名称错误:'pirnt' 名字没有定义
- 2> 将多条
print
写在一行
SyntaxError: invalid syntax语法错误:语法无效
每行代码负责完成一个动作
- 3> 缩进错误
IndentationError: unexpected indent缩进错误:不期望出现的缩进
- Python 是一个格式非常严格的程序设计语言
- 目前而言,大家记住每行代码前面都不要增加空格
- 4>
目前市场上有两个 Python 的版本并存着,分别是 Python 2.x
和 Python 3.x
- ,具体原因,等到介绍 时给大家讲解
- Python 2.x 的解释器名称是
- Python 3.x 的解释器名称是
SyntaxError: Non-ASCII character '\xe4' in file 01-HelloPython.py on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details语法错误: 在 01-HelloPython.py 中第 3 行出现了非 ASCII 字符 '\xe4',但是没有声明文件编码请访问 http://python.org/dev/peps/pep-0263/ 了解详细信息
ASCII
字符只包含256
个字符,不支持中文- 有关字符编码的问题,后续会讲
单词列表
* error 错误* name 名字* defined 已经定义* syntax 语法* invalid 无效* Indentation 索引* unexpected 意外的,不期望的* character 字符* line 行* encoding 编码* declared 声明* details 细节,详细信息* ASCII 一种字符编码
02. Python 2.x
与 3.x
版本简介
目前市场上有两个 Python 的版本并存着,分别是 Python 2.x
和 Python 3.x
新的 Python 程序建议使用
Python 3.0
版本的语法
- Python 2.x 是
- 解释器名称是
- Python 3.x 是
- 解释器名称是
- 相对于
Python
的早期版本,这是一个 - 为了不带入过多的累赘,
Python 3.0
在设计的时候- 许多早期
Python
版本设计的程序都无法在Python 3.0
上正常执行
- 许多早期
- Python 3.0 发布于
- 到目前为止,Python 3.0 的稳定版本已经有很多年了
- Python 3.3 发布于 2012
- Python 3.4 发布于 2014
- Python 3.5 发布于 2015
- Python 3.6 发布于 2016
- 为了照顾现有的程序,官方提供了一个过渡版本 ——
- 基本使用了
Python 2.x
的语法和库 - 同时考虑了向
Python 3.0
的迁移,Python 3.0
的语法与函数 - 2010 年中推出的
Python 2.7
被确定为
- 基本使用了
提示:如果开发时,无法立即使用 Python 3.0(还有极少的第三方库不支持 3.0 的语法),建议
- 先使用
Python 3.0
版本进行开发- 然后使用
Python 2.6
、Python 2.7
来执行,并且做一些兼容性的处理
03. 执行 Python 程序的三种方式
3.1. 解释器 python
/ python3
Python 的解释器
# 使用 python 2.x 解释器$ python xxx.py# 使用 python 3.x 解释器$ python3 xxx.py
其他解释器(知道)
如今有多个语言的实现,包括:
CPython
—— 官方版本的 C 语言实现Jython
—— 可以运行在 Java 平台IronPython
—— 可以运行在 .NET 和 Mono 平台PyPy
—— Python 实现的,支持 JIT 即时编译
3.2. 交互式运行 Python 程序
- 直接在终端中运行解释器,而不输入要执行的文件名
- 在 Python 的
Shell
中直接输入 ,会立即看到程序执行结果
1) 交互式运行 Python 的优缺点
优点
- 适合于学习/验证 Python 语法或者局部代码
缺点
- 代码不能保存
- 不适合运行太大的程序
2) 退出 官方的解释器
1> 直接输入 exit()
>>> exit()
2> 使用热键退出
在 python 解释器中,按热键 ctrl + d
可以退出解释器
3) IPython
- IPython 中 的 “I” 代表
特点
- IPython 是一个 python 的 ,比默认的
python shell
好用得多- 支持自动补全
- 自动缩进
- 支持
bash shell
命令 - 内置了许多很有用的功能和函数
- IPython 是基于 BSD 开源的
版本
-
Python 2.x 使用的解释器是
-
Python 3.x 使用的解释器是
-
要退出解释器可以有以下两种方式:
1> 直接输入 exit
In [1]: exit
2> 使用热键退出
在 IPython 解释器中,按热键 ctrl + d
,IPython
会询问是否退出解释器
IPython 的安装
$ sudo apt install ipython
3.3. Python 的 IDE —— PyCharm
1) 集成开发环境(IDE)
集成开发环境(IDE
,Integrated Development Environment)—— ,一般包括以下工具:
- 图形用户界面
- 代码编辑器(支持 /)
- 编译器/解释器
- 调试器(/)
- ……
2)PyCharm 介绍
PyCharm
是 Python 的一款非常优秀的集成开发环境PyCharm
除了具有一般 IDE 所必备功能外,还可以在Windows
、Linux
、macOS
下使用PyCharm
适合开发大型项目- 一个项目通常会包含
- 每个 的代码行数是有限的,通常在几百行之内
- 每个 各司其职,共同完成复杂的业务功能
3)PyCharm 快速体验
- 能够 // 项目文件
- 能够 当前打开的文件
- 能够:
- 输出程序执行内容
- 跟踪调试代码的执行
- 右上角的 能够 / 代码
- 通过控制台上方的,可以单步执行代码