# 第一章 Python 基础编程
# 1-1 python 开发环境搭建
# 了解 Python (学习大纲)
Pyhton: 互联网应用开发
基本语法:
(1)输入输出:
- 输入:用户输入处理
- 输出:数据格式话输出
(2)变量:定义与使用
(3)注释:多行与单行
(4)Bug 处理:异常处理
(5)格式化输出:用 format 函数
# Python 概述
应用场景:
- 自动化运维和测试
- 数据清洗和分析
- 人工智能和大数据处理
Python:33 个关键词,7 种基本数据类型
# 计算机资源
分类:
- 软件:看得见摸不着
- 硬件:看得见且摸得着
软硬件交互:桥梁是交互系统
计算机资源 | 功能 |
---|---|
CPython | 使用 C 语言开发 |
IPython | 基于 CPython,增加交互功能 |
Jython | 用 Java 开发,将 Python 代码翻译成 Java 字节码 |
# Python 开发利器
Python 的开发利器:PyCharm
作用:
- Project 管理
- 智能提示
- 语法高亮
- 代码跳转
- 调试代码
- 解释代码(解释器)
# PyCharm 创建入门
创建项目【选择新建项目(a new project)】
- 设置路径至 D,E,F 盘 (避免 C 盘重装风险)
- 命名项目
- 选择环境,避免使用虚拟环境
创建 Python 文件:
- 右击点击项目文件夹
- 选择 "新建 Python 文件"(python file)
- 命名 (尽量不用中文)
编写入门程序:使用单引号或双引号包围文本 (字符串)
运行代码的方式:
- 鼠标右键点击代码文件
- 选择运行图标
- 快捷键 “Ctrl+Shift+F10”
# PyCharm 常见问题之解析器配置
遇到 Python 文件运行问题时,首先检查解析器配置
通过 Python 的 "setting" 进行解析器的更换与配置
- 更换解析器流程:找到配置界面:find-setting
- 选择 “a new project”(或类似命名的项目)
- 进入 settings 查找配置
配置解析器:
- 选择 “interpreter”
- 引入所需 Python 版本
确认或更改路径:
- 点小齿轮图标
- 选择 "添加"
- 选择 "已安装" 的 "Python.exe"
# Python 开发环境搭建
# PyCharm 软件本身设置
-
软件主题(即软件外观)
点击 file,再点击 settings
选择第一个 Behavior, 再选择 Appearance
找到主题,选择界面
2. 设置字体与字号
在 settings 中找到一个叫 editor 的选择,在选项中选择 font
size 代表字体的一个大小
3. 关闭项目
点一下 fail 找到 close project,代表把这个项目关闭掉
# 1-2 Python 注释与变量
# PyCharm 快捷键与编辑习惯
# Python 注释
注释的原因:为了程序的可读性
在 Python 中有两种注释方式:单行注释和多行注释
注释方式 | 区别 | 基本语法 |
---|---|---|
单行注释 | 只能注释一行内容 | #注释内容 |
多行注释 | 可以注释多行内容,常用于代码块注释情况 | “”“ ”“” |
小技巧:
可以使用 Ctrl+/ 来对代码或程序进行快速注释
# PyCharm 常用快捷键
常用快捷键 | |
---|---|
代码提示 | 代码提示:输入关键字的前 2~3 个字符(PyCharm 本身自带了一个代码提供的功能),会自动进行代码提示 |
代码保存 | Ctrl+s |
撤销与恢复 | 撤销:Ctrl+Z 恢复:Ctrl+Y |
快速注释 | Ctrl+/ |
代码自动格式化 | Ctrl+Alt+L |
快速复制当前行到下一行 | Ctrl+D |
在编写 Python 代码时,一定要注意代码缩进问题,在 Python 语言中,缩进代表上下级关系
# Python 变量
量:量是程序运行中的最小单元
变量:
- 变量是存储数据的容器
- 变量是程序运行中可以变化的量
- 变量存储的数据是临时的(永久存储数据:放入数据库中)
变量的作用:简单来说,就是临时存储
# 变量的定义
变量名 = 变量的值(计算机从右往左走)
<!-- 注意:= 两边都要留个空格!变量名可以自定义,但是要满足‘标识符’的命名规则 -->
# ‘标识符’的命名规则
- 由数字、字母、下划线组成(例:user_name)
- 不能数字开头(例:hello5)
- 严格区分大小写(a 和 A 是两个完全不同的变量名)
- 不能使用内置关键字作为变量名称
# 内置关键字
# 命名习惯
- 要做到见名知义
- 大驼峰:每个单词首字母都大写
- 小驼峰:第二个(含)以后的单词首字母要大写
- 下划线
# 变量的定义
先定义后使用
# 1-3 Python 数据类型
# Python 中的 7 种数据类型
数据类型 | ||
---|---|---|
数值 | int (整形) float (浮点形,带小数点) | 定义时直接写数字即可,不需要添加任何符号 |
布尔性 | True (真) False (假) | 只有两个值,且必须首字母大写 |
str | 字符串 | 通过一对引号引起来的内容 |
list | 列表 | 数据可以发生改变 |
tuple | 元素 | 数据一但定义,其值就不能发生改变了 |
set | 集合 | 自动去重 |
dick | 字典 | 查询神器 |
# 认识 Bug
Bug, 即程序中的错误
# 解决 bug 三步走 (编译型错误,即语法错误)
<!-- 容易查找 -->
- 查看错误页面
- 看错误的行号
- 根据具体的错误,具体分析
# PyCharm 代码调试 (运行时错误)
Debug 工具是 PyCharm IDE 中集成的专门用来调试程序的工具,在这里程序员可以查看程序的执行细节和流程,以方便我们快速找出程序的 Bug
Debug 工具使用二步走:①打断点②Debug 调试
注意:Debug 还可以用于了解程序的运行流程
# 下断点
断点应该放在哪个位置:答: 代码可能出错的代码段的第一行
# 1-4 Python 格式化输出
# Python 中 print 输出函数详解
# 格式化输出
输出:就是程序输出给用户
print () 函数:主要功能用于实现对变量以及字符串类型数据的直接输出
end 参数,代表当前面的变量或文本信息输出完毕后,追加的内容,默认为 \n,代表换行符
# \ 转义字符
\ 转义字符 | 表示 |
---|---|
\t | 一个 Tab 键的缩进 |
\n | 换行符,实现自动换行(针对终端) |
# 百分号形式的格式化输出
% 格式常见形式如下
格式符号 | 转换 |
---|---|
%s | 字符串 |
%d | 有符号的十进制整数 |
%f | 浮点数 |
%c | 字符 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(小写 ox) |
%X | 十六进制整数(大写 OX) |
# Python 中 input 函数详细讲解
# input () 输入方法
input (' 提示信息 ')
input () 函数,其只要写入一个参数,代表系统的提示信息
# 输入的特点:
- 当程序执行到 'input', 等待用户输入,输入完成之后才能继续向下执行。
- 在 Python 中,'linput' 接收用户输入后,一般存储到变量, 方便使用。
- 在 Python 中,'input' 会把接收到的任意用户输入的数据都当做字符串处理。
# input 方法注意现象
<!-- 注意:所有由 input () 方法获取的数据都是 “字符串” 类型 -->
# 1-5 Python 运算符
# 使用临时变量实现两个变量值的交换
# 学习目标
- 掌握常见数据类型转化函数及 其应用
- 掌握常见运算符的使用
- 了 解条件语句的作用
- 掌握 if 结构、 if..else 结构的使用
- 掌握 if 嵌套结构
- 掌握三目运算符的使用
# Python 数据类型的转换
# 四种转换方法
# 数据类型转换函数
函数 | 说明 |
---|---|
int(x[,base]) | 将 x 转换为一个整数 |
float(x) | 将 x 转换为一个浮点数 |
complex(real[,imag]) | 创建一个复数, real 为实部, imag 为 虚部] |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(x) | 用来计算在字符串中的有效 Python 表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
chr(x) | 将一个整数转换为一一个 Unicode 字符 |
ord(x) | 将一个字符转换为它的 ASCII 整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一一个八进制字符串 |
bin(x) | 将一个整数转换为一个二进制字符串 |
# 运算符的使用
# 运算符分类
- 算数运算符
- 赋值运算符(=)
- 复合赋值运算符
- 比较运算符
- 逻辑运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 1 + 1 输出的结果是 2 |
- | 减 | 1 - 1 输出的结果是 0 |
* | 乘 | 2 * 2 输出的结果是 4 |
/ | 除 | 10 / 2 输出的结果是 5 |
// | 整除 | 9 // 2 输出的结果是 4 |
% | 取余(取模) | 9 % 4 输出的结果是 1 |
** | 幂 | 2 ** 4 输出的结果是 16 |
() | 小括号,用来提高运算优先级 | (1 + 2) * 3 输出的结果是 9 |
注意:
混合运算符优先级顺序:()高于 ** 高于 * /// % 高于 + -
# 赋值运算符
# 复合赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
+= | 加法赋值运算符 | c += a 等价于 c = c + a |
-= | 减法赋值运算符 | c -= a 等价于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等价于 c = c * a |
/= | 除法赋值运算符 | c /= a 等价于 c = c /a |
//= | 整除赋值运算符 | c //= a 等价于 c = c //a |
%= | 取余赋值运算符 | c %= a 等价于 c = c % a |
**= | 幂赋值运算符 | c *= a 等价于 c = c ** a |
注意:算数运算符的优先级 > 复合赋值运算符的优先级
# 比较运算符
应用场景:两个变量大小的比较,其最终返回结果是一个 bool 类型的值,True 或 False
运算符 | 描述 | 实例 |
---|---|---|
== | 判断相等。如果两个操作数的结果相等,则条件结果为真 (True),否则条件结果为假 (False) | 如 a=3,b=3 则 (a==b) 为 True |
!= | 不等于。如果两个操作数的结果不相等,则条件结果为真 (True),否则条件结果为假 (False) | 如 a=1,b=3, 则 (a!=b) 为 True |
> | 运算符左侧操作数结果是否大于右侧操作数结果,如果大于,则条件为真,否则为假 | 如 a=7,b=3, 则 (a>b) 为 True |
< | 运算符左侧操作数结果是否小于右侧操作数结果,如果小于,则条件为真,否则为假 | 如 a=7,b=3, 则 (a<b) 为 True |
>= | 运算符左侧操作数结果是否大于等于右侧操作数结果,如果大于,则条件为真,否则为假 | 如 a=7,b=3, 则 (a<b) 为 False 如 a=3,b=3 则 (a>=b) 为 True |
<= | 运算符左侧操作数结果是否小于等于右侧操作数结果,如果小于,则条件为真,否则为假 | 如 a=3,b=3 则 (a<=b) 为 True |
# 逻辑运算符
逻辑运算符:逻辑与、或、非,其最终返回的结果也是一个布尔类型的值,True 或 Flase。另外在实际工作中,逻辑运算符也主要和 if 分支结构相结合。
运算符 | 描述 | ||
---|---|---|---|
and | x and y | 如果 x 为 Flase,x and y 返回 Flase,否则它返回 y 的值 | True and Flase, 返回 Flase |
or | x or y | 如果 x 为 True,x or y 返回 True,否则它返回 y 的值 | True or Flase, 返回 True |
not | not x | 如果 x 为 True,not x 返回 Flase; 如果 x 为 Flase,not x 返回 True | not True 返回 Flase;not Flase 返回 True; |
<img src="https://i.postimg.cc/3NLC1GvL/20250413201901.jpg" alt="20250413201901.jpg" />
# 短路运算
短路运算的原则:
- 表达式 1 and 表达式 2, 如果表达式 1 条件为真,则最终的运算结果由右边的表达式 2 来决定。如果表达式 1 条件为假,则最终结果为假。其右边的表达式 2 不需要在进行运算。
- 表达式 1 or 表达式 2, 如果表达式 1 为真,则最终的运算结果由表达式 1 来决定,为真。如果表达式 1 为假,则最终结果由表达式 2 来决定。 如果表达式 2 为真,则最终结果为真,如果表达式 2 为假,则最终结果为假。
注意:
- Python 把 0、空字符串和 None 看成 False, 其它数值和非空字符串都看成 True
- 在 Python 语言中,空格也算一个字符(非空)
- 如果逻辑运算符的两边,非纯表达式,则返回结果并不是 bool 布尔类型的值,而是返回决定整个表达式结果的那个值
# 运算符的优先级
运算符说明 | Python 运算符 | 结合性 |
---|---|---|
小括号 | () | 无 |
索引运算符 | x [i] 或 x [i1:i2 [:i3]] | 左 |
属性访问 | x.attribute | 左 |
乘方 | ** | 右 |
按位取反 | ~ | 右 |
符号运算符 | + (正号)、-(负号) | 右 |
乘除 | *、/、//、% | 左 |
加减 | +、- | 左 |
位移 | >>、<< | 左 |
按位与 | & | 右 |
按位异或 | ^ | 左 |
按位或 | | | 左 |
比较运算符 | ==、!=、>、>=、<、<= | 左 |
is 运算符 | is、is not | 左 |
in 运算符 | in、not in | 左 |
逻辑非 | not | 右 |
逻辑与 | and | 左 |
逻辑或 | or | 左 |
逗号运算符 | exp1,exp2 | 左 |
注意:逻辑运算符优先级顺序为从高到低
# 1-6 Python 分支语句
# if 语句详解
基本语法:
if 条件判断: | |
则执行某段代码... | |
print() |
注意:只要与 if 语句它们有缩进关系的,系统都认为下面的代码就是 if 语句的一部分
# if...else (相当于必须要二选一) 语句详解
基本语法:
if 条件判断:
当条件判断为True时,则执行这个语句段
else:
当条件判断为Flase时,则执行这个语句段
# if...elif...else 多重分支语句
if...elif...else 多重判断语句
if 条件1:
条件1成立执行的代码1
条件1成立执行的代码2
......
elif 条件2:
条件2成立执行的代码1
条件2成立执行的代码2
......
......
else:
以上条件都不成立执行的代码
# if...elif...else 多重分支语句相关案例
bmi 值:身体质量指数
# if 嵌套结构
基本语法:
if 外层条件判断: | |
#如果条件为 True,则执行以下语句段 | |
if 内层条件判断: | |
#如果内层条件为 True,则执行以下语句段 | |
else: | |
#如果条件为 Flase,则执行以下语句段 |
编写时要尊重一个原则:先编写外层判断,所有语句编写完成后,再编写内层条件判断结构
# 出拳案例
<img src="https://i.postimg.cc/YqhZ6xTW/20250418232546.jpg" alt="20250418232546.jpg" style="zoom:150%;" />
此时,该代码不是很完整,他不能随机生成电脑的出拳
# Python 中的随机数
引用函数
仍以出拳为例
# 三目运算符
三目运算符也叫三元运算符
主要作用:就是用于简化 if...else... 语句
基本语法:
if 条件判断:
#语句段1
else:
#语句段2
转换为三目运算符:
语句段1 if 条件判断 else 语句段2
可利用三目运算符将以上代码简化
# Python 分支语句练习题
# 三角形案例
# 小组赛案例
# 1-7 while 循环
循环中的两大关键词:comtinue 和 break
# 循环基本结构与循环三步走
循环的作用:让代码高校的重复执行
循环的分类:在 Python 中,循环结构分为 while 和 for 两种
while 循环基本语法
while 条件:
条件成立重复执行的代码1
条件成立重复执行的代码2
......
while 循环三步走:
-
定义初始计数器 i = 0
-
编写循环条件 while i <100: => 目的:到底这个循环在什么时候结束
-
在循环体内部对计数器进行更新操作(一般是 + 1)
# while 循环案例
# 案例 1
# 案例 2
# 案例 3
# 循环中的两大关键词
break: 终止整个循环,强制结束
continue: 停止当前程序,继续下一个程序
# break
# continue
# while 中的死循环
概念:在编程中一个靠自身控制无法终止的程序称为 “死循环”
# while 循环案例:猜数字
# 循环嵌套基本语法与执行流程
while 循环嵌套:就是一个 while 里面嵌套一个 while 的写法,每个 while 和之前的基本语法是相同的
while 循环嵌套方法:
第一步:定义外层循环计数器
i = 0或1
第二步:编写外层循环条件
while i < 3:
第四步:定义内层循环计数器
j = 0或1
第五步:编写内层循环条件
while j < 3:
#核心代码
第六步:在内层循环体中更新计数器的值
j += 1
第三步:在外层循环体中更新计数器的值
i += 1
执行流程:外层循环 1 次,内层循环 n 次
循环嵌套的总次数 = 外层循环次数 * 内层循环次数
# 1-8 for 循环及案例
# for 循环基本语法及其应用场景
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
......
# for 与 range 函数相关案例
range () 函数可以理解为一个序列结构
基本语法:
range(stop)
range(start,stop,[step])
理解 | 案例 | |
---|---|---|
start | 计数从 start 开始。默认是从 0 开始 | range (5) 等价于 range (0,5) |
stop | 计数到 stop 结束,但不包括 stop | range (0,5) 是 [0,1,2,3,4] 没有 5 |
step | 步长,默认为 1 | range (0,5) 等价于 range (0,5,1) |
range (5) => 生成一个序列类型的数据 => [0,1,2,3,4]
range (0,5) => 0 代表开头,5 代表结尾(但不包含 5)
range 其实很简单,只顾头来尾不管
range (0,5,1) 0-5 之间的数字,每次 + 1 => 0 1 2 3 4
range (0,5,2) 0-5 之间的数字,每次 + 2 =>0 2 4
# 用户登录案例演示
break:
continue:
# 1-9 循环 else
# while 循环中的 else 语句结构
循环可以和 else 配合使用,else 下方缩进的代码指的是当循环正常结束之后执行的代码
正常结束:没有遇到 break
不正常结束:break
while 循环 else 结构基本语法
while 条件:
条件成立重复执行的代码
else:
循环正常结束之后执行的代码
while...else 遇上 break (终止)
while...else 遇上 continue (继续)
# for 循环中 else 的结构
基本语法
for临时变量in序列:
重复执行的代码
...
else:
循环正常结束之后要执行的代码
所谓 else 指的是循环正常结束之后要执行的代码,即如果是 break 终止循环的情况,else 下方缩进的代码将不执行
退出循环的两种方式
-
遇见 break
-
遇见 continue
# 综合案例:报数字游戏
# 1-10 字符串定义切片
# 字符串定义与输入输出
定义:
- 一对引号字符串
- 三引号字符串(支持换行)
字符串是 Python 中最常用的数据类型。我们一般所有引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。
注意:控制台显示结果为 '<class str>', 即数据类型为 str(字符串)
输入
在 Python 代码中,我们可以使用 input () 方法来接收用户的输入信息。
记住:在 Python 中,input () 方法返回的结果是一个字符串类型的数据。
name = input(' 请输入您的姓名: ) | |
age = input('请输入您的年龄: ') | |
address = input('请输入您的住址: ') | |
print(name, age, address) |
- input () 可以阻断当前正在执行的代码,让系统处于等待状态,直到用户输入完成
- input () 方法接收到的所有数据,返回的数据类型多少字符串
输出
普通输出
print(变量名称) | |
print(变量名称1,变量名称2,变量名称3) |
格式化输出
-
百分号 (Python2 和 Python3)
name = input('请输入您的姓名:') age = int(input('请输入您的年龄: ') address = input(' 请输入您的住址:' ) print('我的名字是当s,今年%d岁了,家里住在%s...% (name, age, address))
-
format 方法 (Python3)
name = input(' 请输入您的姓名: ') age = input(' 请输入您的年龄: ') address = input(' 请输入您的住址: ') print('我的名字是{},今年()岁了,家里住在{}...'.format(name. age, address)
-
f 形式 (Python3)
name = input('请输入您的姓名: ')
age = input(' 请输入您的年龄: ')
eddress input( '请输入您的住址:')
print(f'我的名字是 {name},今年{age}岁了, 家里住在{address}...')
# 字符串索引下标与循环遍历
在计算机中,Python 中的字符串属于序列结构。所以底层存储占用一段连续的存储空间。
索引的最大值 = len (字符串) - 1
例如:7 个字符,则索引下标的最大值为 7 - 1 = 6
注意:索引下标从 0 开始
索引下标:就是编号。
举个例子:
name = 'abcdef' | |
print(name[0]) #a | |
print(name[3]) #d |
遍历
# 字符串切片
什么是切片?
答:切片是指对操作的对象截取其中一部分的操作,字符串、列表、元组都支持切片操作。
基本语法
序列[开始位置下标:结束位置下标:步长]
注意:
- 不包含结束位置下标对应的位置,正负整数均可
- 步长是选取间隔,正负整数均可,默认步长为 1
口决:
切片其实很简单,只顾头来尾不顾,
步长为正,正向移动
步长为负,则逆向移
# 1-11 字符串查找,替换,合并
# 字符串的查找方法
字符串的查找方法结就是查找子串在字符串的位置或出现的次数
基本语法:
字符串.find(要操作的字符或子串) |
编号 | 函数 | 作用 |
---|---|---|
1 | find() | 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回 - 1 |
2 | index() | 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常 |
包含
不包含
# 字符串查找案例
# 字符串修改方法
所谓字符串修改,指的就是通过函数的形式修改字符串中的数据
字符串修改
编号 | 函数 | 作用 |
---|---|---|
1 | replace() | 返回替换后的字符串 |
2 | split() | 返回切割后的列表序列 |
3 | join() | 用一个字符或子串合并一个字符串,即是将多个字符串合并成一个新的字符串 |
4 | upper () 和 lower () | 返回全部大写或小写的字符串 |
-
# replace () 方法
基本语法
字符串.replace(要替换的内容,替换后的内容,替换的次数-可以省略)
目前在工作中,replace 主要用于实现关键字替换或过滤功能
全部替换
部分替换
-
# split()
作用:对字符串进行切割操作,返回一个 list () 列表的数据
-
# join()
作用:和 split () 方法正好相反其主要功能是把序列拼接为字符串
字符串.join(数据序列)
# upper () 和 lower ()
upper ():把字符串全部转换成大写
lower ():把字符串全部转换成小写
# 字符串的判断语句
字符串判断:所谓判断既是判断真假,返回的结果是布尔型数据类型(True 或 Flase)
函数 | 作用 |
---|---|
startswith() | 检查字符串是否以指定子串开头,是则返回 True, 否则返回 Flase, 如果设置开始和结束位置下标,则在指定范围内检查 |
endswith() | 检查字符串是否以指定子串结尾,是则返回 True, 否则返回 Flase, 如果设置开始和结束位置下标,则在指定范围内检查 |
基本语法
mystr1 = 'Python program'
print(mystr1.startswith('Python'))
print('-' * 10)
mystr2 = 'aver.png'
print(mystr2.endswith('.png'))
# 1-12 列表定义及使用
# 列表的定义与元素访问
基本语法
列表名称 = [数据1,数据2,数据3,数据4...]
注意:列表可以一次存储多个数据且可以是不同的数据类型
# 列表的查询操作
** 常用操作:** 列表的作用是一次性存储多个数据,可以对数据进行的操作有” 增、删、改、查 “
列表的底层存储形式和字符串都是一样的,其也是通过索引下标来对权威进行引用的
查操作的相关方法:
编号 | 函数 | 作用 |
---|---|---|
1 | index() | 指定数据所在位置的下标 |
2 | count() | 添加指定数据在当前列表中出现的次数 |
3 | in | 判断指定数据在某个列表序列,如果在返回 True, 否则返回 Flase |
4 | not in | 判断指定数据不在某个列表序列,如果不在返回 True, 否则返回 Flase |
# index () 方法:
列表序列.index(数据,开始位置下标,结束位置下标)
# count () 方法:
# in 和 not in 方法:
# 列表的增加方法
增加
编号 | 函数 | 作用 |
---|---|---|
1 | append() | 增加指定数据到列表中 |
2 | extend() | 列表结尾增加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表 |
3 | insert() | 指定位置新增数据 |
# append():
注意:列表增加数据的时候,直接在原列表里面增加了指定数据,即修改了原列表,故列表为可变类型数据
# extend():
总结:extend 方法比较适合于两个列表进行合并的操作
# insert():
# 列表的删除操作
编号 | 函数 | 作用 |
---|---|---|
1 | del 列表 [索引] | 删除列表的某个元素 |
2 | pop() | 删除指定下标的数据(默认为最后一个),并返回该数据 |
3 | remove() | 移除列表中某个数据的第一个匹配项 |
4 | clear() | 清空列表,删除列表中的所有元素,返回空列表 |
1.del 列表 [索引]:
2.pop():
3.remove():
4.clear():
# 列表的修改操作
编号 | 函数 | 作用 |
---|---|---|
1 | 列表 [索引]= 修改之后的值 | 修改列表中的某个元素 |
2 | revese() | 将数据序列进行倒序排序 |
3 | sort() | 将列表序列进行排序 |
-
列表 [索引]= 修改之后的值:
-
revese():
也可用切片的方法:
-
sort():
# 使用循环遍历列表
使用 while 对列表进行遍历输出
使用 for 对列表进行遍历输出
# 列表嵌套
所谓列表嵌套指的就是一个列表包含了其他的子列表
# 1-13 元祖定义及使用
# 元组的定义与访问
元组和列表一样,也可以存储多个数据
作用 | |
---|---|
列表 | 可以一次性存储多个数据,但是列表中的数据允许更改 |
元组 | 元组可以存储多个数据且元组内的数据是不能修改的 |
元组类型应该为:tuple
定义元组
** 元组特点:** 定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型
#多个数据元组
t1 = (10,20,30)
#单个数据元组
t2 = (10,)
注意:如果定义的元组只有一个数据,那么这个数据后面也要添加逗号,否则数据类型为唯一的这个数据的数据类型
元组的相关操作
编号 | 函数 | 作用 |
---|---|---|
1 | 元组 [索引] | 根据索引下标查找元素 |
2 | index() | 查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的 index 方法相同 |
3 | count() | 统计某个数据在当前元组出现的次数 |
4 | len() | 统计元组中数据的个数 |
元组内的数据如果直接修改则立即报错,但是如果元组里面有列表,修改列表里面的数据则是支持的,故这个特点非常重要
修改报错:
# 1-14 字典定义及使用
# 字典的定义及访问过程
字典类型:dict
** 思考:** 数据顺序发生变化,每个数据的下标也会随之变化,如何保证数据变化前后能使用同一的标准查找数据呢?
答:字典,字典里面的数据是以键值对形式出现,字典顺序和数据顺序没有关系,即字典不支持下标,后期无论数据如何变化,只需要按照对应键的名字查找数据即可。
字典特点:
- 符号为大括号(花括号)
- 数据为键值对形式出现
- 每个键值对用逗号隔开
key:value 键值对 key 可以是字符类型也可以是数值类型
在 Python 代码中,字典中的 key 必须使用引号引起来
# 有数据字典
dict1 = {'name':'Tom', 'age':20, 'gender':'male'}
# 空字典
dict2 = {}
dict3 = dict()
注意:一般称冒号前面的为键(key), 简称 k; 冒号后面的为值(value), 简称 v
字典的 “增” 操作
基本语法:
字典序列[key] = value
** 注意:** 如果 key 存在则修改这个 key 对应的值:如果 key 不存在则新增此键值对
字典为可变类型
# 字典的新增操作
基本语法:
字典名称[key] = value
注:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对
注意:列表、字典为可变类型
# 字典的删除操作
删除操作:
- del 字典名称 [key]: 删除指定元素
- clear () 方法:清空字典中的所有 key
# 字典的修改操作
基本语法:
字典名称[key] = value
注:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对
# 字典的查询方式
字典的查操作:
-
查询方法:使用具体的某个 key 查询数据,如果未找到,则直接报错
字典数列[key]
-
字典的相关查询方法
编号 函数 作用 1 get (key, 默认值) 根据字典的 key 获取对应的 value 值,如果当查找的 key 不存在则返回第二个参数(默认值),如果省略第二个参数,则返回 None 2 keys() 以列表返回一个字典所有的键 3 values() 以列表返回字典中的所有值 4 items() 以列表返回可遍历的(键,值)元组数组
# 1-15 案例 - 学生管理系统
# 学生管理系统菜单功能开发
** 需求:** 开一个通讯录的管理系统,主要用于实现存储班级中学生的信息(姓名、年龄、电话)
** 知识点:** 列表、字典、死循环
** 延伸:** 在 Python 中,我们可以使用字典来保存一个人的基本信息。但是如果想保存多个人的信息,我们必须把列表和字典结合起来
问:为什么需要死循环?
答:当我们选中某个菜单时,功能一旦执行完毕,则整个程序就执行结束了。为了保存程序可以一直运行下去,可以模拟死循环的效果,让程序一直运行下去
# 学生管理系统多分支判断
# 学生管理系统学生添加与查询功能实现
# 学生管理系统删除功能
# 1-16 集合定义及使用
# 集合的定义
集合是一个天生去重的数据序列
集合的定义:
集合(set)是一个无序的不重复元素序列
** 注意:** 集合里面的元素是不重复的并且集合内的元素还是无序的
即,集合可以想元组一样,设置不可改变的类型。也可以默认想字典,列表一样,可以迭代改变。同时集合里的元素可以是列表,元组,字典
基本语法:
创建集合使用‘{}’或‘set ()’,但如果要创建空集合只能使用‘set ()’,因为‘{}’用来创建空字典
# 集合中的新增操作
集合的增操作:
# 集合中的删除方法
-
remove () 方法:删除集合中的指定数据,如果数据不存在则报错
存在:
不存在:
-
discard () 方法:删除集合中的指定数据,如果数据不存在也不会报错
存在:
不存在:
-
pop () 方法:随机删除集合中的某个数据,并返回这个数据
执行原理:系统自动对集合中的数据进行排序(排序方法是混乱的,无规律的),排序后,pop () 方法自动删除第一个元素
# 集合中的查询方法
# 集合求交集 - 并集 - 差集
在 Python 中,求各集合所用的符号
集合 | 符号 |
---|---|
交集 | & |
并集 | I |
差集 | - |
# 1-17 公共方法与推导式
# 常见公告方法汇总
什么是公共方法?
所谓公共方法就是支持大部分数据序列
常见公共方法:
运算符 | 描述 | 支持的容件类型 |
---|---|---|
+ | 合并 | 字符串、列表、元组 |
* | 复制 | 字符串、列表、元组 |
in | 元素是否存在 | 字符串、列表、元组、字典 |
not in | 元素是否不存在 | 字符串、列表、元组、字典 |
合并:
复制:
in 和 not in: