导图社区 Python
考前速通Python!梳理了Python基础的核心内容,涵盖概述、代码打包(函数)、模块和包、标准库概览、第三方库、控制结构、列表和元组、字典和集合、实用项目案例等,解决单选判断~
编辑于2025-06-26 14:12:50Python应用基础
概述
编程语言历史
程序设计语言概述
机器语言
汇编语言
高级语言
编译与解释
编译型语言
定义
程序代码在运行前转换成机器码
生成独立的可执行文件
特点
执行速度快
需要编译过程
通常跨平台性较差
解释型语言
定义
程序代码在运行时逐行转换成机器码
不生成独立的可执行文件
特点
开发效率高
灵活性好
执行速度通常慢于编译型语言
Python的编译与解释
Python代码执行过程
代码首先被编译成字节码
字节码由Python虚拟机解释执行
Python的特点
易读性强
可扩展性
可移植性
丰富的库支持
两种运行方式:交互式和文件式
两种运行方式
交互式
通过Python解释器
直接输入代码
立即执行并显示结果
适合测试小段代码
快速验证想法
学习语言特性
使用方式
打开Python解释器
输入命令并执行
文件式
编写Python脚本
创建文本文件
编写Python代码
通过解释器运行脚本
使用命令行
指定脚本文件名
适合复杂程序开发
组织良好
可重复使用
使用方式
编辑器编写代码
保存为.py文件
在命令行中运行文件
应用领域
Web开发
数据科学
自动化脚本
人工智能
Python基础
Python程序基本语法元素
变量
命名
可以包含字母、数字、下划线和汉字
不能以数字开头
不要使用Python保留字
赋值:变量=值
给变量赋新值后,原值会被覆盖
Python支持同时给多个变量赋值
a,b=0.1,210
x,y=10,20 x,y=y,x
表达式
定义:表达式是程序设计语言中最基本的结构,包含“值”和“运算符”,并且总是可以求值为单个值
运算符
注释
单行注释以#开头,多行注释以'''开头和结尾
Python基本数字类型
基本类型:整型(int)和浮点型(float)
内置的数值运算函数
整型与浮点型的运算及转换
两个整数运算,结果为整数; 整数和浮点数运算,结果就是浮点数; 两个浮点数运算,结果是浮点数; 计算除法,结果也必须是浮点。
字符串(str)类型及其操作
定义:由“”或''括起来的一个或多个字符
如果在一个包含了单引号的字符串中,使用单引号将整个字符串括起来,Python就会报错。除了改用双引号,还可以使用转义字符对单引号进行转义。
字符串索引
格式:变量[头下标:尾下标]
字符串运算
字符串的拼接与重复
使用加号(+)可以连接两个字符串
'金融'+'科技'
使用乘号(*)可以使字符串重复n次
'金融科技'*3
获取字符串长度的len函数
len('fintech是金融科技。')
13(句号也要算,当字符串中包含转义字符时,转义字符长度是1)
字符串的in和not in操作符
用in或not in连接两个字符串得到的表达式,将求值True或False
'hello 'in 'Hello world'
False
字符串的count方法
str.count(char)方法,返回指定值在字符串中出现的次数
'fintech是由“finance”与“tecnology”两个词合成的'.count('e')
3
字符串的upper() lower() isupper()和islower()
'hello world!'.upper()
'HELLO WORLD!'
'Hello world!'.isupper()
False
字符串的isX方法
str.isalpha()返回True,如果字符串只包含字母,并且非空; str.isalnum()返回True,如果字符串只包含字母和数字,并且非空; str.isdecimal()返回True,如果字符串只包含数字字符,并且非空; str.isspace()返回True,如果字符串只包含空格、制表符和换行,并且非空; str.istitle()返回True,如果字符串仅包含以大写字母开头、后面都是小写字母的单词。
字符串的startwith()和endwith()方法
'http://www.swufe.edu.cn'.startswith('http')
True
'file1.py'.endswith('.xlsx')
False
字符串的join()和split()方法
如果有一个字符串列表,需要将它们连接起来,成为一个单独的字符串,join()方法就很有用。join()方法在一个字符串上调用,参数是一个字符串列表,返回一个字符串。返回的字符串由传入的列表中每个字符串连接而成: 'sep'.join(sequence)
','.join(['管理部', '人事部', '销售部'])
'管理部,人事部,销售部'
split()方法做的事情正好相反:它针对一个字符串调用,返回一个字符串列表。
'管理部,人事部,销售部'.split(',')
['管理部', '人事部', '销售部']
用strip(),rstrip(),lstrip()删除空白字符
str.strip([chars])字符串方法将返回一个新的字符串,它的开头或末尾都没有空白字符。 str.lstrip([chars])方法将相应删除左边的空白字符。 str.rstrip([chars])方法将相应删除右边的空白字符。 chars -- 指定删除的字符(默认为空白符)
用replace()替换字符串
'fintech是金融科技。'.replace('f','F').replace('t','T')
'FinTech是金融科技。'
注:replace方法同样没有改变字符串本身
字符串格式化方法format()和f-string
字母替换-format()
'股票代码:{ } 对应的名称是:{ }'.format('600036','招商银行') # 不设置指定位置,按默认顺序
'股票名称:{1} 对应的代码是:{0}'.format('600036','招商银行') # 设置指定位置
字段替换-f-string
f-string在形式上是以 f 或 F 修饰符引领的字符串:f'xxx' 或 F'xxx',以大括号 {} 标明被替换的字段。 f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式。
用户输入input函数
input()函数等待用户在键盘上输入文本,并按下回车键,这就是从控制台获得用户输入。 输入的内容被当作一个字符串,即这个函数的值为一个字符串。
打印输出print函数
默认输出末尾自动换行,如果不需要换行,print("Hello!", end="")
布尔类型、逻辑运算与关系运算
布尔类型
Python 中的布尔类型只有两种值:True 和 False。 Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1,False==0
注:在Python中=用于赋值,==用于判断是否相等
逻辑运算
Python中3个布尔操作符(and、or 和not)用于计算布尔值。像比较操作符一样,它们将这些表达式求值为一个布尔值。
优先级:not>and>or
关系运算
常用内置函数
导入模块
import语句
import <库名> 此时,程序可以调用库名中的所有函数,这时使用库中函数的格式如下: <库名>.<函数名>(<函数参数>)
import〈库名〉as 名称缩写
import〈库名〉.〈子模块名〉as 名称缩写
from…import语句
from <库名> import <函数名,函数名,函数名,...,函数名> from <库名>.<子模块名> import <函数名,函数名,函数名,...,函数名> from <库名> import * 其中,*是通配符,表示所有函数
控制结构
顺序结构
顺序结构是程序最基本、最简单的控制结构。 程序的顺序结构是指代码按照从上到下的顺序依次执行,每一步操作都严格遵循书写顺序,前一步完成后才会执行下一步,类似于日常生活中的“按部就班”。
分支结构
条件表达式
控制语句的开始部分通常是“条件表达式”。分支语句通过条件表达式确定选择执行的代码块;循环语句通过条件表达式决定是否执行循环体中的代码块。通常来说,条件表达式的结果为一个布尔值,即True或者False,例如关系运算或者逻辑运算的表达式。控制语句根据条件是True还是False来决定做什么。
表达式值的判别
假
真
除了上表列出的值,都是真值
单分支结构:if语句
条件为真值True时,执行代码块,再执行后续代码;条件为假值False时,跳过代码块,执行后续代码。
双分支结构:if-else语句
只有if语句后的代码为False时,才会执行else后面的代码块。
多分支结构:elif子句
elif表示“否则如果”,总是跟在if或另一条elif语句后面,仅在前面条件都是False时才检查该条件
三元表达式:if/else
将if-else语句放到同一行里: True_expression if condition else False_expression
for循环语句
核心思想:对一个序列中的每个元素依次执行相同的操作(这个序列必须是iterable可迭代的)
使用range函数对整数范围遍历
两种形式
range(stop)
range(start,stop,[step])
对字符串进行遍历
while循环语句
核心思想:只要while语句的条件为True,while子句中的代码就会执行
break,continue和else语句
break:用于提前终止循环,跳出循环体,继续执行循环之后的代码。(当满足某个条件时,提前结束循环)
continue:用于跳过当前迭代,继续下一次循环。(当满足某个条件时,跳过当前循环体的剩余代码,继续下一次循环)
else:在循环正常结束后执行(即没有触发 break 语句)。(检查循环是否完整执行完毕)
random库的应用
采用梅森旋转法生成伪随机数序列
列表和元组
组合数据类型
序列类型
是一个元素向量,元素之间存在顺序关系,通过序号访问
集合类型
是一个元素集合,元素之间无序,相同元素在集合中唯一存在
映射类型
是“键-值”数据项的组合,每个元素是一个键值对,表示为(key,value)
序列类型
Python中的主要序列类型
字符串(str)
列表(list)
可变序列
元组(tuple)
不可变序列
通用序列类型操作
分片操作
形式:[开始:结束:步长],类同字符串索引
步长K为None时,将其视为1,步长也可以是负数,就是以相反的顺序来获取元素
最灵活的序列类型:列表
定义:列表是一个值,它包含多个值构成的序列。术语“列表值”指的是列表本身,它作为一个值,可以保存在变量中,或传递给函数,而不是指列表之内的那些值。
特征
列表的长度和内容都是可变的,可以自由增删、替换。列表没有长度限制,元素类型可以不同。
列表属于序列类型,所以列表也支持成员关系操作符(in)、长度计算函数(len())、分片([])
列表可以同时使用正向递增序号和反向递减序号
可以采用标准的比较操作符(<,<=,==,!=),列表:比较实际上是单个数据项的逐个比较
列表的操作
创建列表
1.使用一对方括号[ ]创建列表
2.使用一对方括号,用逗号分隔元素,直接创建列表:[a,b,c]
3.使用类型构造函数list()或list(iterable)
list(iterable)的参数为可迭代对象,如字符串,元组,字典或者集合
4.使用列表推导式生成列表[x for x in iterable]
列表中的元素
元素的访问
ls[索引号]
元素的修改
单一元素修改:元素赋值
分片修改
元素的新增
1.s.extend(t)方法:将列表t的元素一次添加到列表s的末尾。等同于s+t,(会遍历之后拆开,一次添加)
2.s.append(x)方法:将x追加到s末尾。(会直接把传入的参数添加到末尾,不会遍历,因此只会添加一个元素)
3.s.insert(index,element)方法:在index给出的索引处将element插入列表s
元素的删除
1.s.remove(value):按值删除第一个匹配项
2.s.pop()或s.pop(i)
3.del语句
del s[i]
删除索引号为i的单个元素
del s[i:j:k]
删除切片范围内的步长为k的元素
del s
删除整个列表s
4.s.clear()语句
删除掉列表中的所有元素
列表的常用方法
1.s.copy方法
与整数和字符串不同,列表要处理一串数据,简单将一个列表赋值给另一个列表不会生成新的列表对象。
2.s.sort方法:对列表元素排序
sort(key=None,reverse=False)
key-指定一个参数,用于从每个列表元素中提取比较键,如Key=len
reverse-排序规则,reverse=True降序,reverse=False降序
3.s.reverse()方法:将s中的项方向反转
4.s.index(x,i,j)方法:x在s中第一次出现的索引(在索引i之后j之前)
5.列表的遍历
直接遍历列表的元素:for item in list
通过列表的索引号遍历
使用enumerate(list)遍历
不可变的序列类型:元组
创建元组
1.使用一对圆括号( )来创建空元组
2.对单元素元组使用末尾逗号:a, or (a,)
3.用多个逗号分隔元素:a,b,c or(a,b,c)
4.使用类型构造函数tuple( )或tuple(iterable)
元组中的元素
不可变性:和字符串一样,他们的值不能被增删、修改
元组中元素的访问-使用索引号进行访问
元组的运算
元组的连接
和字符串一样,利用+和*连接
删除元组
元组的元素是不能单独删除的,但我们可以用del语句删除整个元组
元组中的元素给变量赋值
虽然元素不可以被修改,但是刚好可以用来赋值给变量
字典和集合
映射类型:字典
定义:字典是Python中唯一内置的、核心的映射类型,以键值对的形式存储数据。核心机制是通过可哈希的键快速索引关联值
特征
字典是无序的,通过键而不是索引号进行访问,键可以是任何不可变类型
通过特定的键,查找对应的值
字典是可变的,可以增删、更改元素
创建字典
1.使用一对花括号{ }
2.使用类型构造函数dict()
使用dict( )直接创建空字典
使用键值对序列创建字典
使用关键字参数
3.字典推导式
{key_expression:value_expression for expression in iterable}
{key_expression:value_expression for expression in iterable if condition }
字典的元素
访问字典的值-用键而不是索引号进行访问
修改字典的值-通过类似列表元素赋值
增加字典的键值对:通过给不存在的键赋值
删除键值对
del d[key]
d.pop(k,d)和d.popitem( )
d.pop(k,d)中的k是对应的键,d (default)是当键key不存在时返回的值
d.popitem( )删除最后的键值对,返回被删除的键值对
d.clear()
清空所有的键值对
字典的常用方法
1.d.keys( ),d.values( )和d.items( )方法
2.遍历字典-其实是在遍历字典的键
3.d.get( )和d.setdefault( )方法
d.get()获取字典的某个键的值
d.setdefault( ),不同的是,如果键不存在,这个键值对会被添加到字典中
4.使用内置函数sorted( )对字典排序
sorted(d):返回一个新列表,列表元素是排序后的字典的键。
sorted(d.values()):返回一个新列表,列表元素是排序后的字典的值。
sorted(d.items()):返回一个新列表,列表元素是排序后的字典的键值对组成的元组。
5.顺序反转函数reverse(d)
reversed(d):返回字典中的键顺序反转后的可迭代对象,但不影响字典本身。
reversed(d.keys()):返回字典中的键顺序反转后的可迭代对象,但不影响字典本身。
reversed(d.values()):返回字典中的值顺序反转后的可迭代对象,但不影响字典本身。
reversed(d.items()):返回字典中的键值对元组顺序反转后的可迭代对象,但不影响字典本身。
6.d.copy方法
代码打包:函数
定义和调用函数
函数定义
函数的调用过程
(1)调用程序在调用处暂停执行;
(2)在调用时将实参复制给函数的形参;
(3)执行函数整体语句;
(4)函数调用结束给出返回值,程序回到调用前的暂停处继续执行。
函数的参数传递
函数参数传递的基本性质
传递参数时,实际上传递的是对象的引用(指针);
对不可变对象的"修改"实际上是创建了新对象;
对可变对象的修改会影响原始对象;
函数参数传递的类型
位置参数
位置参数是调用函数为形参赋值的一种默认方式,是最常见的一种参数传递方式,指参数按照位置顺序匹配。
关键字参数
为了避免位置参数赋值带来的混乱,Python 允许调用函数时通过关键字参数的形式指定形参与实参的对应关系。 调用者使用 name=value 的形式来指定函数中的哪个形参接受某个值。简单来说,就是通过参数名指定值,顺序不重要。
默认参数
定义函数时为参数指定默认值。这样当函数调用者没有提供对应参数值时,就可以使用指定的默认值。
可变长度参数
*args:接收任意数量的位置参数(作为元组)
**args:接收任意数量的关键字参数(作为字典)
针对形参的关键字参数赋值形式, 利用 Python 定义函数时, 在形参前面加上双星号 **来定义收集关键字参数的形参。此时形参是字典类型。
参数传递的其他方法
解包参数
相反的情况是,当参数已经在列表、元组或字典中,但函数调用时需要单独的位置参数或者关键字参数,这时可以使用*或**来解包。 使用*解包序列,**解包字典。
函数对变量的作用(变量的作用域)
Python 中规定每个变量都有它的作用域,即变量只有在作用域范围内才是可见可用的。作用域能避免程序代码中的名称冲突,在一个函数中定义的变量名称不会干扰另外一个函数内的变量。这有助于使函数更加独立。 根据作用域范围的大小,可以将作用域分为全局作用域和局部作用域。
全局变量是指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效。
局部变量是指在函数内部使用的变量,仅在函数内部有效,当函数退出时变量将不存在。
lambda表达式
lambda表达式用于创建匿名函数
x=lambda a:a+10 print
模块和包
导入模块
import语句
from...import...
创建模块
包的概念
__init__.py文件
包的导入
标准库概览
os模块
sys模块
datetime模块
json模块
collections模块
第三方库
安装第三方库
pip命令
requirements.txt
常用第三方库
requests
numpy
pandas
matplotlib
实用项目案例
简单爬虫
数据分析脚本
自动化办公脚本
Web应用开发
字符串与数值类型的转换:
通过str函数将整型和浮点型转化成为字符串
str(10.8)
'10.8'
str(100)
'100'
通过int或float函数将字符串转化为整数或浮点数
int(x),将x转化成整数,x可以是浮点数或整数形式的字符串
float(x),将x转化成浮点数,x可以是整数或数字形式的字符串