# 第一章 Python 基础编程

# 1-1 python 开发环境搭建

# 了解 Python (学习大纲)

Pyhton: 互联网应用开发

基本语法:

(1)输入输出:

  1. 输入:用户输入处理
  2. 输出:数据格式话输出

(2)变量:定义与使用

(3)注释:多行与单行

(4)Bug 处理:异常处理

(5)格式化输出:用 format 函数

# Python 概述

应用场景:

  1. 自动化运维和测试
  2. 数据清洗和分析
  3. 人工智能和大数据处理

Python:33 个关键词,7 种基本数据类型

# 计算机资源

分类:

  1. 软件:看得见摸不着
  2. 硬件:看得见且摸得着

软硬件交互:桥梁是交互系统

计算机资源 功能
CPython 使用 C 语言开发
IPython 基于 CPython,增加交互功能
Jython 用 Java 开发,将 Python 代码翻译成 Java 字节码

# Python 开发利器

Python 的开发利器:PyCharm

作用:

  1. Project 管理
  2. 智能提示
  3. 语法高亮
  4. 代码跳转
  5. 调试代码
  6. 解释代码(解释器)

# PyCharm 创建入门

创建项目【选择新建项目(a new project)】

  1. 设置路径至 D,E,F 盘 (避免 C 盘重装风险)
  2. 命名项目
  3. 选择环境,避免使用虚拟环境

创建 Python 文件:

  1. 右击点击项目文件夹
  2. 选择 "新建 Python 文件"(python file)
  3. 命名 (尽量不用中文)

编写入门程序:使用单引号或双引号包围文本 (字符串)

运行代码的方式:

  1. 鼠标右键点击代码文件
  2. 选择运行图标
  3. 快捷键 “Ctrl+Shift+F10”

# PyCharm 常见问题之解析器配置

遇到 Python 文件运行问题时,首先检查解析器配置

通过 Python 的 "setting" 进行解析器的更换与配置

  1. 更换解析器流程:找到配置界面:find-setting
  2. 选择 “a new project”(或类似命名的项目)
  3. 进入 settings 查找配置

配置解析器:

  1. 选择 “interpreter”
  2. 引入所需 Python 版本

确认或更改路径:

  1. 点小齿轮图标
  2. 选择 "添加"
  3. 选择 "已安装" 的 "Python.exe"

# Python 开发环境搭建

# PyCharm 软件本身设置

  1. 软件主题(即软件外观)

    点击 file,再点击 settings

    1743519058605.png

    选择第一个 Behavior, 再选择 Appearance

1743519220679.png

找到主题,选择界面

1743519433836.png

2. 设置字体与字号

在 settings 中找到一个叫 editor 的选择,在选项中选择 font

1743519761773.png

size 代表字体的一个大小

1743519833063.png

3. 关闭项目

点一下 fail 找到 close project,代表把这个项目关闭掉

1743519946790.png

# 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 变量

量:量是程序运行中的最小单元

变量:

  1. 变量是存储数据的容器
  2. 变量是程序运行中可以变化的量
  3. 变量存储的数据是临时的(永久存储数据:放入数据库中)

变量的作用:简单来说,就是临时存储

# 变量的定义

变量名 = 变量的值(计算机从右往左走)

<!-- 注意:= 两边都要留个空格!变量名可以自定义,但是要满足‘标识符’的命名规则 -->

# ‘标识符’的命名规则

  1. 由数字、字母、下划线组成(例:user_name)
  2. 不能数字开头(例:hello5)
  3. 严格区分大小写(a 和 A 是两个完全不同的变量名)
  4. 不能使用内置关键字作为变量名称

# 内置关键字

1743685933288.png

# 命名习惯

  1. 要做到见名知义
  2. 大驼峰:每个单词首字母都大写
  3. 小驼峰:第二个(含)以后的单词首字母要大写
  4. 下划线

# 变量的定义

先定义后使用

# 1-3 Python 数据类型

# Python 中的 7 种数据类型

数据类型
数值 int (整形) float (浮点形,带小数点) 定义时直接写数字即可,不需要添加任何符号
布尔性 True (真) False (假) 只有两个值,且必须首字母大写
str 字符串 通过一对引号引起来的内容
list 列表 数据可以发生改变
tuple 元素 数据一但定义,其值就不能发生改变了
set 集合 自动去重
dick 字典 查询神器

# 认识 Bug

Bug, 即程序中的错误

# 解决 bug 三步走 (编译型错误,即语法错误)

<!-- 容易查找 -->

  1. 查看错误页面
  2. 看错误的行号
  3. 根据具体的错误,具体分析

# PyCharm 代码调试 (运行时错误)

Debug 工具是 PyCharm IDE 中集成的专门用来调试程序的工具,在这里程序员可以查看程序的执行细节和流程,以方便我们快速找出程序的 Bug

Debug 工具使用二步走:①打断点②Debug 调试

注意:Debug 还可以用于了解程序的运行流程

# 下断点

断点应该放在哪个位置:答: 代码可能出错的代码段的第一行

# 1-4 Python 格式化输出

# Python 中 print 输出函数详解

# 格式化输出

输出:就是程序输出给用户

1743772303495.png

1743772309087.png

print () 函数:主要功能用于实现对变量以及字符串类型数据的直接输出

end 参数,代表当前面的变量或文本信息输出完毕后,追加的内容,默认为 \n,代表换行符

1743772994621.png

1743773009029.png

1743773173194.png

1743773184771.png

# \ 转义字符

\ 转义字符 表示
\t 一个 Tab 键的缩进
\n 换行符,实现自动换行(针对终端)

1743773346355-1.png

1743773352777.png

# 百分号形式的格式化输出

% 格式常见形式如下

格式符号 转换
%s 字符串
%d 有符号的十进制整数
%f 浮点数
%c 字符
%u 无符号十进制整数
%o 八进制整数
%x 十六进制整数(小写 ox)
%X 十六进制整数(大写 OX)

# Python 中 input 函数详细讲解

# input () 输入方法

input (' 提示信息 ')

input () 函数,其只要写入一个参数,代表系统的提示信息

1744292593489.png

1744293166855.png

# 输入的特点:

  1. 当程序执行到 'input', 等待用户输入,输入完成之后才能继续向下执行。
  2. 在 Python 中,'linput' 接收用户输入后,一般存储到变量, 方便使用。
  3. 在 Python 中,'input' 会把接收到的任意用户输入的数据都当做字符串处理。

# input 方法注意现象

<!-- 注意:所有由 input () 方法获取的数据都是 “字符串” 类型 -->

# 1-5 Python 运算符

# 使用临时变量实现两个变量值的交换

1744295368074.png

# 学习目标

  1. 掌握常见数据类型转化函数及 其应用
  2. 掌握常见运算符的使用
  3. 了 解条件语句的作用
  4. 掌握 if 结构、 if..else 结构的使用
  5. 掌握 if 嵌套结构
  6. 掌握三目运算符的使用

# Python 数据类型的转换

1744465841637.png

# 四种转换方法

# 数据类型转换函数

函数 说明
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) 将一个整数转换为一个二进制字符串

20250412221021.jpg

# 运算符的使用

# 运算符分类

  1. 算数运算符
  2. 赋值运算符(=)
  3. 复合赋值运算符
  4. 比较运算符
  5. 逻辑运算符
运算符 描述 实例
+ 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

注意:

混合运算符优先级顺序:()高于 ** 高于 * /// % 高于 + -

20250412224709.jpg

# 赋值运算符

20250412225318.jpg

# 复合赋值运算符

运算符 描述 实例
+= 加法赋值运算符 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. 表达式 1 and 表达式 2, 如果表达式 1 条件为真,则最终的运算结果由右边的表达式 2 来决定。如果表达式 1 条件为假,则最终结果为假。其右边的表达式 2 不需要在进行运算。
  2. 表达式 1 or 表达式 2, 如果表达式 1 为真,则最终的运算结果由表达式 1 来决定,为真。如果表达式 1 为假,则最终结果由表达式 2 来决定。 如果表达式 2 为真,则最终结果为真,如果表达式 2 为假,则最终结果为假。

注意:

  1. Python 把 0、空字符串和 None 看成 False, 其它数值和非空字符串都看成 True
  2. 在 Python 语言中,空格也算一个字符(非空)
  3. 如果逻辑运算符的两边,非纯表达式,则返回结果并不是 bool 布尔类型的值,而是返回决定整个表达式结果的那个值

20250413205007.jpg

# 运算符的优先级

运算符说明 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()

20250415232558.jpg

20250415233244.jpg

注意:只要与 if 语句它们有缩进关系的,系统都认为下面的代码就是 if 语句的一部分

# if...else (相当于必须要二选一) 语句详解

基本语法:

if 条件判断:
   当条件判断为True时,则执行这个语句段
else:
    当条件判断为Flase时,则执行这个语句段

20250416205303.jpg

20250416205413.jpg

# if...elif...else 多重分支语句

if...elif...else 多重判断语句

if 条件1:
   条件1成立执行的代码1
   条件1成立执行的代码2
   ......
elif 条件2:
   条件2成立执行的代码1
   条件2成立执行的代码2
   ......
......
else:
   以上条件都不成立执行的代码

20250416222507.jpg

20250416222620.jpg

20250416222722.jpg

# if...elif...else 多重分支语句相关案例

bmi 值:身体质量指数

20250416225135.jpg

# if 嵌套结构

基本语法:

if 外层条件判断:
   #如果条件为 True,则执行以下语句段
   if 内层条件判断:
      #如果内层条件为 True,则执行以下语句段
else:
     #如果条件为 Flase,则执行以下语句段

编写时要尊重一个原则:先编写外层判断,所有语句编写完成后,再编写内层条件判断结构

20250418214556.jpg

20250418214820.jpg

# 出拳案例

20250418232340.jpg

<img src="https://i.postimg.cc/YqhZ6xTW/20250418232546.jpg" alt="20250418232546.jpg" style="zoom:150%;" />

20250418232722.jpg

20250418232837.jpg

此时,该代码不是很完整,他不能随机生成电脑的出拳

# Python 中的随机数

引用函数

20250418234842.jpg

仍以出拳为例

20250418234543.jpg

# 三目运算符

三目运算符也叫三元运算符

主要作用:就是用于简化 if...else... 语句

基本语法:

if 条件判断:
   #语句段1
else:
   #语句段2

转换为三目运算符:

语句段1 if 条件判断 else 语句段2

20250419001702.jpg

可利用三目运算符将以上代码简化

20250419002138.jpg

# Python 分支语句练习题

# 三角形案例

20250419193559.jpg

# 小组赛案例

20250419202742.jpg

# 1-7 while 循环

循环中的两大关键词:comtinue 和 break

# 循环基本结构与循环三步走

循环的作用:让代码高校的重复执行

循环的分类:在 Python 中,循环结构分为 while 和 for 两种

while 循环基本语法

while 条件:
   条件成立重复执行的代码1
   条件成立重复执行的代码2
   ......

while 循环三步走:

  1. 定义初始计数器 i = 0

  2. 编写循环条件 while i <100: => 目的:到底这个循环在什么时候结束

  3. 在循环体内部对计数器进行更新操作(一般是 + 1)

    20250419230127.jpg

# while 循环案例

# 案例 1

20250420212428.jpg

# 案例 2

20250420213746.jpg

20250420214234.jpg

# 案例 3

20250420215130.jpg

# 循环中的两大关键词

break: 终止整个循环,强制结束

continue: 停止当前程序,继续下一个程序

# break

20250420220818.jpg

# continue

20250420221943.jpg

20250420222245.jpg

# while 中的死循环

概念:在编程中一个靠自身控制无法终止的程序称为 “死循环”

20250420222926.jpg

20250420223703.jpg

# while 循环案例:猜数字

20250421221215.jpg

# 循环嵌套基本语法与执行流程

while 循环嵌套:就是一个 while 里面嵌套一个 while 的写法,每个 while 和之前的基本语法是相同的

while 循环嵌套方法:

第一步:定义外层循环计数器
i = 0或1
第二步:编写外层循环条件
while i < 3:
    第四步:定义内层循环计数器
    j = 0或1
    第五步:编写内层循环条件
    while j < 3:
        #核心代码
        第六步:在内层循环体中更新计数器的值
        j += 1
    第三步:在外层循环体中更新计数器的值
    i += 1

20250421223007.jpg

执行流程:外层循环 1 次,内层循环 n 次

循环嵌套的总次数 = 外层循环次数 * 内层循环次数

# 1-8 for 循环及案例

# for 循环基本语法及其应用场景

for 临时变量 in 序列:
  重复执行的代码1
  重复执行的代码2
  ......

20250421224947.jpg

# 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

20250422213421.jpg

20250422213718.jpg

# 用户登录案例演示

break:

20250422214805.jpg

continue:

20250422215243.jpg

20250422222651.jpg

# 1-9 循环 else

# while 循环中的 else 语句结构

循环可以和 else 配合使用,else 下方缩进的代码指的是当循环正常结束之后执行的代码

正常结束:没有遇到 break

不正常结束:break

while 循环 else 结构基本语法

while 条件:
  条件成立重复执行的代码
else:
  循环正常结束之后执行的代码

20250422224325.jpg

while...else 遇上 break (终止)

20250422224719.jpg

while...else 遇上 continue (继续)

20250422225002.jpg

# for 循环中 else 的结构

基本语法

for临时变量in序列:
  重复执行的代码
  ...
else:
  循环正常结束之后要执行的代码

所谓 else 指的是循环正常结束之后要执行的代码,即如果是 break 终止循环的情况,else 下方缩进的代码将不执行

20250425220744.jpg

退出循环的两种方式

  1. 遇见 break

    20250425221204.jpg

  2. 遇见 continue

    20250425221548.jpg

# 综合案例:报数字游戏

20250425223152.jpg

# 1-10 字符串定义切片

# 字符串定义与输入输出

定义:

  1. 一对引号字符串
  2. 三引号字符串(支持换行)

字符串是 Python 中最常用的数据类型。我们一般所有引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。

注意:控制台显示结果为 '<class str>', 即数据类型为 str(字符串)

20250425224841.jpg

输入

在 Python 代码中,我们可以使用 input () 方法来接收用户的输入信息。

记住:在 Python 中,input () 方法返回的结果是一个字符串类型的数据。

name = input(' 请输入您的姓名: )
age = input('请输入您的年龄: ')
address = input('请输入您的住址: ')
print(name, age, address)
  1. input () 可以阻断当前正在执行的代码,让系统处于等待状态,直到用户输入完成
  2. input () 方法接收到的所有数据,返回的数据类型多少字符串

输出

普通输出

print(变量名称)
print(变量名称1,变量名称2,变量名称3)

格式化输出

  1. 百分号 (Python2 和 Python3)

    name = input('请输入您的姓名:')
    age = int(input('请输入您的年龄: ')
    address = input(' 请输入您的住址:' )
    
    print('我的名字是当s,今年%d岁了,家里住在%s...% (name, age, address))
    
  2. format 方法 (Python3)

    name = input(' 请输入您的姓名: ')
    age = input(' 请输入您的年龄: ')
    address = input(' 请输入您的住址: ')
    
    print('我的名字是{},今年()岁了,家里住在{}...'.format(name. age, address)
    
  3. 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

20250426225357.jpg

遍历

20250426230306.jpg

# 字符串切片

什么是切片?

答:切片是指对操作的对象截取其中一部分的操作,字符串、列表、元组都支持切片操作。

基本语法

序列[开始位置下标:结束位置下标:步长]

注意:

  1. 不包含结束位置下标对应的位置,正负整数均可
  2. 步长是选取间隔,正负整数均可,默认步长为 1

口决:

切片其实很简单,只顾头来尾不顾,

步长为正,正向移动

步长为负,则逆向移

20250426233008.jpg

# 1-11 字符串查找,替换,合并

# 字符串的查找方法

字符串的查找方法结就是查找子串在字符串的位置或出现的次数

基本语法:

字符串.find(要操作的字符或子串)
编号 函数 作用
1 find() 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回 - 1
2 index() 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常

包含

20250427184121.jpg

不包含

20250427184402.jpg

20250428001834.jpg

# 字符串查找案例

20250428003106.jpg

# 字符串修改方法

所谓字符串修改,指的就是通过函数的形式修改字符串中的数据

字符串修改

编号 函数 作用
1 replace() 返回替换后的字符串
2 split() 返回切割后的列表序列
3 join() 用一个字符或子串合并一个字符串,即是将多个字符串合并成一个新的字符串
4 upper () 和 lower () 返回全部大写或小写的字符串
  1. # replace () 方法

    基本语法

    字符串.replace(要替换的内容,替换后的内容,替换的次数-可以省略)
    

    20250428193250.jpg

    目前在工作中,replace 主要用于实现关键字替换或过滤功能

    全部替换

    20250428230325.jpg

    部分替换

    20250428230612.jpg

  2. # split()

    作用:对字符串进行切割操作,返回一个 list () 列表的数据

    20250428234718.jpg

  3. # join()

    作用:和 split () 方法正好相反其主要功能是把序列拼接为字符串

    字符串.join(数据序列)
    

    20250428235853.jpg

    # upper () 和 lower ()

upper ():把字符串全部转换成大写

20250429000402.jpg

lower ():把字符串全部转换成小写

20250429001612.jpg

# 字符串的判断语句

字符串判断:所谓判断既是判断真假,返回的结果是布尔型数据类型(True 或 Flase)

函数 作用
startswith() 检查字符串是否以指定子串开头,是则返回 True, 否则返回 Flase, 如果设置开始和结束位置下标,则在指定范围内检查
endswith() 检查字符串是否以指定子串结尾,是则返回 True, 否则返回 Flase, 如果设置开始和结束位置下标,则在指定范围内检查

基本语法

mystr1 = 'Python program'
print(mystr1.startswith('Python'))

print('-' * 10)

mystr2 = 'aver.png'
print(mystr2.endswith('.png'))

20250429223727.jpg

# 1-12 列表定义及使用

# 列表的定义与元素访问

基本语法

列表名称 = [数据1,数据2,数据3,数据4...]

注意:列表可以一次存储多个数据且可以是不同的数据类型

20250429233747.jpg

20250429235739.jpg

# 列表的查询操作

** 常用操作:** 列表的作用是一次性存储多个数据,可以对数据进行的操作有” 增、删、改、查

列表的底层存储形式和字符串都是一样的,其也是通过索引下标来对权威进行引用的

查操作的相关方法:

编号 函数 作用
1 index() 指定数据所在位置的下标
2 count() 添加指定数据在当前列表中出现的次数
3 in 判断指定数据在某个列表序列,如果在返回 True, 否则返回 Flase
4 not in 判断指定数据不在某个列表序列,如果不在返回 True, 否则返回 Flase

# index () 方法:

列表序列.index(数据,开始位置下标,结束位置下标)

20250504202220.jpg

# count () 方法:

20250504202820.jpg

# in 和 not in 方法:

20250504203526.jpg

# 列表的增加方法

增加

编号 函数 作用
1 append() 增加指定数据到列表中
2 extend() 列表结尾增加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表
3 insert() 指定位置新增数据

# append():

20250504204528.jpg

注意:列表增加数据的时候,直接在原列表里面增加了指定数据,即修改了原列表,故列表为可变类型数据

# extend():

20250504205320.jpg

总结:extend 方法比较适合于两个列表进行合并的操作

# insert():

20250504205903.jpg

# 列表的删除操作

编号 函数 作用
1 del 列表 [索引] 删除列表的某个元素
2 pop() 删除指定下标的数据(默认为最后一个),并返回该数据
3 remove() 移除列表中某个数据的第一个匹配项
4 clear() 清空列表,删除列表中的所有元素,返回空列表

1.del 列表 [索引]:

20250507224554.jpg

2.pop():

20250507225707.jpg

3.remove():

20250507230255.jpg

4.clear():

20250507230625.jpg

# 列表的修改操作

编号 函数 作用
1 列表 [索引]= 修改之后的值 修改列表中的某个元素
2 revese() 将数据序列进行倒序排序
3 sort() 将列表序列进行排序
  1. 列表 [索引]= 修改之后的值:

    20250507231522.jpg

  2. revese():

    20250507232059.jpg

    也可用切片的方法:

    20250507232303.jpg

  3. sort():

    20250507232812.jpg

# 使用循环遍历列表

使用 while 对列表进行遍历输出

20250512174004.jpg

使用 for 对列表进行遍历输出

20250512174702.jpg

# 列表嵌套

所谓列表嵌套指的就是一个列表包含了其他的子列表

20250512180559.jpg

# 1-13 元祖定义及使用

# 元组的定义与访问

元组和列表一样,也可以存储多个数据

作用
列表 可以一次性存储多个数据,但是列表中的数据允许更改
元组 元组可以存储多个数据且元组内的数据是不能修改的

元组类型应该为:tuple

定义元组

** 元组特点:** 定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型

#多个数据元组
t1 = (10,20,30)

#单个数据元组
t2 = (10,)

注意:如果定义的元组只有一个数据,那么这个数据后面也要添加逗号,否则数据类型为唯一的这个数据的数据类型

20250512190322.jpg

元组的相关操作

编号 函数 作用
1 元组 [索引] 根据索引下标查找元素
2 index() 查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的 index 方法相同
3 count() 统计某个数据在当前元组出现的次数
4 len() 统计元组中数据的个数
  1. 元组 [索引]:

    20250512192715.jpg

  2. index()

    存在:

    20250512193308.jpg

    不存在:

    20250512193414.jpg

  3. count()

    20250512193721.jpg

  4. len()

    20250512194019.jpg

元组内的数据如果直接修改则立即报错,但是如果元组里面有列表,修改列表里面的数据则是支持的,故这个特点非常重要

修改报错:

20250512192045.jpg

# 1-14 字典定义及使用

# 字典的定义及访问过程

字典类型:dict

** 思考:** 数据顺序发生变化,每个数据的下标也会随之变化,如何保证数据变化前后能使用同一的标准查找数据呢?

答:字典,字典里面的数据是以键值对形式出现,字典顺序和数据顺序没有关系,即字典不支持下标,后期无论数据如何变化,只需要按照对应键的名字查找数据即可。

字典特点:

  1. 符号为大括号(花括号)
  2. 数据为键值对形式出现
  3. 每个键值对用逗号隔开

key:value 键值对 key 可以是字符类型也可以是数值类型

在 Python 代码中,字典中的 key 必须使用引号引起来

# 有数据字典
dict1 = {'name':'Tom', 'age':20, 'gender':'male'}

# 空字典
dict2 = {}

dict3 = dict()

注意:一般称冒号前面的为键(key), 简称 k; 冒号后面的为值(value), 简称 v

20250514233120.jpg

字典的 “增” 操作

基本语法:

字典序列[key] = value

** 注意:** 如果 key 存在则修改这个 key 对应的值:如果 key 不存在则新增此键值对

字典为可变类型

20250519234409.jpg

20250520000846.jpg

# 字典的新增操作

基本语法:

字典名称[key] = value
注:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对

注意:列表、字典为可变类型

20250521231114.jpg

# 字典的删除操作

删除操作:

  1. del 字典名称 [key]: 删除指定元素
  2. clear () 方法:清空字典中的所有 key

20250521232021.jpg

# 字典的修改操作

基本语法:

字典名称[key] = value
注:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对

20250522223218.jpg

# 字典的查询方式

字典的查操作:

  1. 查询方法:使用具体的某个 key 查询数据,如果未找到,则直接报错

    字典数列[key]
    
  2. 字典的相关查询方法

    编号 函数 作用
    1 get (key, 默认值) 根据字典的 key 获取对应的 value 值,如果当查找的 key 不存在则返回第二个参数(默认值),如果省略第二个参数,则返回 None
    2 keys() 以列表返回一个字典所有的键
    3 values() 以列表返回字典中的所有值
    4 items() 以列表返回可遍历的(键,值)元组数组

    20250522225229.jpg

20250522225321.jpg

20250522231007.jpg

# 1-15 案例 - 学生管理系统

# 学生管理系统菜单功能开发

** 需求:** 开一个通讯录的管理系统,主要用于实现存储班级中学生的信息(姓名、年龄、电话)

** 知识点:** 列表、字典、死循环

** 延伸:** 在 Python 中,我们可以使用字典来保存一个人的基本信息。但是如果想保存多个人的信息,我们必须把列表和字典结合起来

问:为什么需要死循环?

答:当我们选中某个菜单时,功能一旦执行完毕,则整个程序就执行结束了。为了保存程序可以一直运行下去,可以模拟死循环的效果,让程序一直运行下去

20250523132536.jpg

# 学生管理系统多分支判断

20250523222412.jpg

20250523222424.jpg

# 学生管理系统学生添加与查询功能实现

20250527211018.jpg

20250527211232.jpg

# 学生管理系统删除功能

20250527213921.jpg

20250527214013.jpg

20250527235341.jpg

20250527235500.jpg

# 1-16 集合定义及使用

# 集合的定义

集合是一个天生去重的数据序列

集合的定义:

集合(set)是一个无序的不重复元素序列

** 注意:** 集合里面的元素是不重复的并且集合内的元素还是无序的

即,集合可以想元组一样,设置不可改变的类型。也可以默认想字典,列表一样,可以迭代改变。同时集合里的元素可以是列表,元组,字典

基本语法:

创建集合使用‘{}’或‘set ()’,但如果要创建空集合只能使用‘set ()’,因为‘{}’用来创建空字典

20250528234056.jpg

# 集合中的新增操作

集合的增操作:

  1. add () 方法:向集合中增加一个元素(单一)

    20250528234842.jpg

  2. update () 方法:向集合在增加序列类型的数据(字符串、列表、元组、字典)

    20250528235518.jpg

# 集合中的删除方法

  1. remove () 方法:删除集合中的指定数据,如果数据不存在则报错

    存在:

    20250610182217.jpg

    不存在:

    20250610182403.jpg

  2. discard () 方法:删除集合中的指定数据,如果数据不存在也不会报错

    存在:

    20250610182758.jpg

    不存在:

    20250610182856.jpg

  3. pop () 方法:随机删除集合中的某个数据,并返回这个数据

    执行原理:系统自动对集合中的数据进行排序(排序方法是混乱的,无规律的),排序后,pop () 方法自动删除第一个元素

    20250610183301.jpg

# 集合中的查询方法

  1. in:判断某个元素是否在集合中,如果在,则返回 True,否则返回 Flase

    20250610184653.jpg

  2. not in : 判断某个元素不在集合中,如果不在,则返回 True,否则返回 Flase

  3. 集合的遍历操作

    20250610185108.jpg

# 集合求交集 - 并集 - 差集

在 Python 中,求各集合所用的符号

集合 符号
交集 &
并集 I
差集 -

20250629094404.jpg

# 1-17 公共方法与推导式

# 常见公告方法汇总

什么是公共方法?

所谓公共方法就是支持大部分数据序列

常见公共方法:

运算符 描述 支持的容件类型
+ 合并 字符串、列表、元组
* 复制 字符串、列表、元组
in 元素是否存在 字符串、列表、元组、字典
not in 元素是否不存在 字符串、列表、元组、字典

合并:

20250629100941.jpg

复制:

20250629101733.jpg

in 和 not in:

20250629102528.jpg