Python 核心语法与内置函数手册
一、变量定义与数据类型
1.1 基础数据类型(不可变)
- 整数:
int,包含正整数 / 负整数 / 0,支持任意长度,无溢出限制
- 浮点数:
float,小数形式,支持科学计数法,示例:3.14、5.2e3(等价 5200)
- 布尔值:
bool,仅两个值 True/False,本质是 int 子类,True=1、False=0,可参与数值运算
- 字符串:
str,不可变序列,单引号 / 双引号包裹单行,三引号 """..."""/'''...''' 包裹多行
- 空值:
None,首字母必须大写,代表空对象,判断空必须用 is None
1.2 字符串专属特性与操作
- 不可变性:赋值后无法修改单个字符,示例:
s='abc'; s[0]='A' 会报错
- 拼接与重复:
+ 号拼接字符串,* 号重复字符串,示例:'py'+'thon' → 'python'、'a'*3 → 'aaa'
- 格式化:
f-string(Python3.6+ 推荐),示例:f'姓名:{name},年龄:{age}'
- 常用操作:
strip() 去首尾空格、split() 分割字符串、join() 拼接序列、replace() 替换字符、find() 查找索引、切片取值
1.3 容器数据类型
| 类型 | 定义格式 | 核心特性 | 常用操作 |
|---|
| 列表(list) | [] | 可变有序序列,元素可重复、可存任意类型 | append()/insert()/pop()/remove()/sort()/reverse() |
| 元组(tuple) | () | 不可变有序序列,元素可重复,单个元素需加逗号 (5,) | 索引取值、切片,无增删改操作 |
| 字典(dict) | {键:值} | 可变键值对(Python3.7+ 有序),键唯一且不可变 | dict[key] 取值、dict[key]=value 增改、keys()/values()/items() |
| 集合(set) | {} | 可变无序无重复序列,无索引 | add()/remove()、& 交集、` |
1.4 类型转换函数
int(x):转为整数,浮点数转整数舍弃小数位,示例:int(3.9)→3
float(x):转为浮点数,示例:float(5)→5.0
str(x):转为字符串,任意类型均可转换,示例:str(True)→'True'
bool(x):转为布尔值,空值 / 0 / 空容器为 False,其余为 True
list(x):转为列表,可迭代对象均可转换,示例:list('abc')→['a','b','c']
tuple(x):转为元组,转换后不可变
dict(x):转为字典,需传入键值对格式数据,示例:dict([('a',1),('b',2)])→{'a':1,'b':2}
set(x):转为集合,自动去重,示例:set([1,1,2])→{1,2}
二、运算符
2.1 算术运算符(优先级最高)
| 运算符 | 作用 | 示例 |
|---|
+ | 加法 / 字符串拼接 / 列表合并 | 1+2=3、'a'+'b'='ab' |
- | 减法 | 5-3=2 |
* | 乘法 / 字符串重复 | 2*3=6、'a'*3='aaa' |
/ | 精确除法(返回浮点数) | 7/2=3.5 |
// | 整除(向下取整) | 7//2=3、-7//2=-4 |
% | 取余(模运算) | 7%2=1 |
** | 幂运算 | 3**2=9、2**0.5=√2 |
2.2 赋值运算符
- 基础赋值:
=,示例:a=10
- 复合赋值:
+=、-=、*=、/=、//=、%=、**=,示例:a+=5 等价 a=a+5
2.3 比较运算符(返回布尔值)
==(值相等)、!=(值不等)、>、<、>=、<=
2.4 逻辑运算符(优先级:not > and > or,短路运算)
and:两边都为 True 则返回 True
or:任意一边为 True 则返回 True
not:取反,示例:not 0→True
2.5 成员运算符(用于容器类型)
in:判断元素是否在容器内,示例:'a' in ['a','b']→True
not in:判断元素是否不在容器内
2.6 身份运算符(判断内存地址)
is:判断两个对象内存地址相同,判断 None 必用,示例:a is None
is not:判断两个对象内存地址不同
- 核心区别:
== 判值相等,is 判地址相等
三、流程控制语句
3.1 条件判断(无 switch 语法)
- 三目运算符(简化写法):
值 1 if 条件 else 值 2,示例:'及格' if score>=60 else '不及格'
多分支语法:
if 条件 1:
代码块 1
elif 条件 2:
代码块 2
else:
代码块 3
基础语法:
if 条件表达式:
执行代码块
3.2 循环语句
3.2.1 for 循环(遍历优先)
- 基础语法:
for 变量名 in 可迭代对象:执行代码块
- 可迭代对象:列表、元组、字典、字符串、
range() 等
range() 生成序列:range(start, end, step),左闭右开,示例:range(5)→0,1,2,3,4
- 字典遍历:
- 遍历键:
for k in dict: 代码块
- 遍历值:
for v in dict.values(): 代码块
- 遍历键值对:
for k,v in dict.items(): 代码块
- 带索引遍历:
for 索引,元素 in enumerate(可迭代对象,start=0): 代码块
3.2.2 while 循环(条件优先)
- 核心:条件为
True 时持续执行,需手动修改条件变量避免死循环
基础语法:
while 条件表达式:
执行代码块
3.3 循环控制关键字
break:强制终止当前单层循环
continue:跳过本次循环剩余代码,进入下一次循环判断
else:循环正常结束时执行,被 break 终止则不执行
3.4 推导式(Python 特有,简洁高效)
| 类型 | 语法格式 | 示例 |
|---|
| 列表推导式 | [表达式 for 变量 in 可迭代对象 if 条件] | [i*3 for i in range(5) if i>2] → [9,12] |
| 字典推导式 | {键表达式:值表达式 for 变量 in 可迭代对象 if 条件} | {k:v+1 for k,v in {'a':1}.items()} → {'a':2} |
| 集合推导式 | {表达式 for 变量 in 可迭代对象 if 条件} | {i%2 for i in range(4)} → {0,1} |
| 生成器表达式 | (表达式 for 变量 in 可迭代对象 if 条件) | g=(i*2 for i in range(3)) → 生成器对象 |
四、函数相关
4.1 函数基础定义与调用
- 调用语法:
函数名 (实参列表)
- 命名规则:字母、数字、下划线组成,不能以数字开头,小写 + 下划线规范
- 文档注释:通过
help(函数名) 可查看注释内容
定义语法:
def 函数名 (形参列表):
'''函数文档注释'''
函数体代码
return 返回值
4.2 函数返回值规则
return 关键字:执行到 return 立即结束函数,后续代码不执行
- 无
return:函数默认返回 None
- 单返回值:直接返回任意类型数据
- 多返回值:自动打包为元组,示例:
return 1,2,3 → (1,2,3)
4.3 函数参数类型(按定义顺序排列)
| 参数类型 | 定义格式 | 核心特点 |
|---|
| 位置参数 | def func(a,b): | 按顺序传参,个数、顺序必须一致 |
| 关键字参数 | func(b=2,a=1) | 按参数名传参,顺序可任意 |
| 默认参数 | def func(a,b=10): | 调用时可省略,必须放在位置参数后 |
| 可变位置参数 | def func(*args): | 接收任意位置参数,打包为元组 |
| 可变关键字参数 | def func(**kwargs): | 接收任意关键字参数,打包为字典 |
- 传参技巧:
* 解包序列、** 解包字典,示例:func(*[1,2]) 等价 func(1,2)
4.4 匿名函数(lambda)
- 定义语法:
lambda 参数列表:表达式
- 核心特性:仅一个表达式,自动返回结果,无循环 / 条件语句(可写三目运算符)
- 适用场景:配合
map/filter 等高阶函数使用,示例:lambda x,y: x*y
4.5 变量作用域(LEGB 规则)
- 作用域优先级:局部作用域 (L) → 嵌套作用域 (E) → 全局作用域 (G) → 内置作用域 (B)
- 局部变量:函数内部定义,仅函数内生效
- 全局变量:函数外部定义,整个文件生效
global 关键字:函数内声明并修改全局变量
nonlocal 关键字:嵌套函数内修改外层函数变量
4.6 高阶函数特性
- 定义:接收函数作为参数,或返回一个函数
- 核心优势:简化代码逻辑,支持函数嵌套调用与组合
五、面向对象编程
5.1 类与对象基础
- 类的定义:
class 类名 (父类=object): 类体代码
- 对象实例化:
对象名 = 类名 (参数)
- 类的组成:属性(存储数据)+ 方法(实现功能)
5.2 构造方法与属性
- 构造方法:
__init__(self, 参数),创建对象时自动执行,用于初始化属性
self 关键字:代表当前对象,类内调用属性 / 方法必须加 self
- 实例属性:
self.属性名=值,每个对象独立拥有
- 类属性:类内直接定义,所有对象共享,示例:
class Person: type='人类'
5.3 类的三种方法
| 方法类型 | 定义格式 | 调用方式 |
|---|
| 实例方法 | def 方法名 (self, 参数): | 对象调用,操作实例属性 |
| 类方法 | @classmethod def 方法名 (cls, 参数): | 类 / 对象调用,操作类属性 |
| 静态方法 | @staticmethod def 方法名 (参数): | 类 / 对象调用,与类和对象无关 |
5.4 封装与私有特性
- 封装:隐藏内部细节,仅暴露接口
- 私有属性:
self.__属性名,外部无法直接访问
- 私有方法:
def __方法名 (self):,外部无法直接调用
5.5 继承与重写
- 继承语法:
class 子类名 (父类名):,子类继承父类公有属性和方法
- 多继承:
class 子类名 (父 1,父 2):,按顺序查找属性 / 方法
super() 关键字:子类调用父类方法,示例:super().父类方法 ()
- 方法重写:子类定义与父类同名方法,覆盖父类功能
5.6 属性装饰器
@property:将方法转为只读属性,调用时无需加括号,示例:对象。方法名
- 作用:简化属性访问,同时可对属性值做校验处理
六、其他核心基础语法
6.1 切片(有序序列通用)
- 语法格式:
序列 [起始索引:结束索引:步长],核心规则:左闭右开
- 索引规则:正索引从 0 开始,负索引从 -1 开始(代表最后一个元素)
- 省略规则:省略起始索引默认从 0 开始,省略结束索引默认到末尾,省略步长默认 1
- 常用技巧:步长为 -1 实现序列反转,示例:
'python'[::-1]→'nohtyp'
- 特性:切片返回新序列,不修改原数据
6.2 解包(Python 特有)
- 序列解包:变量个数与元素一致,示例:
a,b,c=[1,2,3]
- 剩余元素解包:
* 接收剩余元素,示例:a,*b=[1,2,3]→a=1,b=[2,3]
- 字典解包:
** 解包键值对,仅用于函数传参,示例:func(**{'a':1})
6.3 异常处理(容错核心)
- 主动抛异常:
raise 异常类型 (错误信息),示例:raise ValueError('数值必须大于 0')
- 万能异常:
except Exception:,捕获所有常规异常
基础语法结构:
try:
可能报错的代码
except 异常类型 as e:
报错后的处理代码
else:
无报错时执行的代码
finally:
无论是否报错都执行的代码
6.4 文件操作
- 打开文件:
open(文件路径,打开模式,encoding='utf-8')
- 常用打开模式:
r:只读(默认)
w:覆盖写,无则创建,有则清空
a:追加写,无则创建
r+:读写
- 读写操作:
- 读:
f.read()(读全部)、f.readline()(读一行)、f.readlines()(读所有行)
- 写:
f.write(内容)、f.writelines(列表)
安全写法(上下文管理器):
with open('test.txt','r',encoding='utf-8') as f:
content = f.read()
特性:自动关闭文件,无需手动调用 f.close()
6.5 注释规范
- 单行注释:
# 开头,注释单行内容
- 多行注释:
"""...""" 或 '''...''' 包裹,本质是字符串常量
- 规范原则:注释关键逻辑,与代码同步更新,不写冗余内容
七、高频内置函数(无需导入,直接调用)
7.1 基础通用操作函数
| 函数 | 功能说明 | 示例 |
|---|
print() | 控制台输出,支持多参数、sep、end | print(1,2,sep='-')→1-2 |
input() | 接收用户输入,返回字符串 | age=int(input('输入年龄:')) |
len(obj) | 获取容器 / 对象长度 | len({'a':1})→1 |
type(obj) | 返回对象精确类型 | type([1,2])→<class 'list'> |
isinstance(obj,cls) | 判断对象是否为指定类实例(支持继承) | isinstance(5,int)→True |
id(obj) | 返回对象内存地址 | id(None)→固定内存地址 |
7.2 序列 / 容器操作函数
| 函数 | 功能说明 | 示例 |
|---|
sorted(iter,key=None,reverse=False) | 排序可迭代对象,返回新列表 | sorted([3,1,2],reverse=True)→[3,2,1] |
enumerate(iter,start=0) | 遍历返回 (索引,元素) 迭代器 | list(enumerate(['a'],1))→[(1,'a')] |
zip(*iters) | 打包多个可迭代对象,长度取最短 | list(zip([1],['a']))→[(1,'a')] |
max(iter,key=None) | 返回可迭代对象最大值 | max([1,3,2])→3 |
min(iter,key=None) | 返回可迭代对象最小值 | min([1,3,2])→1 |
sum(iter,start=0) | 计算元素和,start 为初始值 | sum([1,2],10)→13 |
reversed(iter) | 反转可迭代对象,返回迭代器 | list(reversed([1,2]))→[2,1] |
7.3 数值计算与判断函数
| 函数 | 功能说明 | 示例 |
|---|
abs(x) | 返回数值绝对值 | abs(-3.14)→3.14 |
round(x,n=0) | 四舍五入,n 为小数位数 | round(3.1415,2)→3.14 |
all(iter) | 所有元素为 True 则返回 True | all([1,True])→True |
any(iter) | 任意元素为 True 则返回 True | any([0,False,1])→True |
pow(x,y) | 计算 x 的 y 次幂 | pow(2,3)→8 |
divmod(x,y) | 返回 (x//y, x% y) | divmod(7,2)→(3,1) |
7.4 高阶内置函数
| 函数 | 功能说明 | 示例 |
|---|
map(func,iter) | 对元素执行 func,返回迭代器 | list(map(lambda x:x*2,[1,2]))→[2,4] |
filter(func,iter) | 过滤符合条件的元素,返回迭代器 | list(filter(lambda x:x>1,[1,2,3]))→[2,3] |
eval(str) | 执行字符串表达式,返回结果 | eval('1+2*3')→7 |
exec(str) | 执行字符串代码块,无返回值 | exec('a=1;print(a)')→1 |
7.5 其他高频函数
| 函数 | 功能说明 | 示例 |
|---|
chr(x) | ASCII 码转字符 | chr(65)→'A' |
ord(x) | 字符转 ASCII 码 | ord('a')→97 |
range(start,end,step) | 生成整数序列,左闭右开 | range(5)→0,1,2,3,4 |
hash(obj) | 返回对象哈希值 | hash('abc')→固定哈希值 |
bin(x) | 整数转二进制字符串 | bin(5)→'0b101' |
oct(x) | 整数转八进制字符串 | oct(5)→'0o5' |
hex(x) | 整数转十六进制字符串 | hex(5)→'0x5' |