# 第一章 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}...')