-
数据类型核心特性
-
不可变对象:字符串(如
s = "Hello",无法直接修改s[0] = 'h')、元组(如(3, 9, 'h'),执行t[0] = 0会报错)、数字;可变对象:列表([1,2,3]可通过append(4)变为[1,2,3,4])、字典({'name':'Tom'}可修改['name']='Jerry')、集合({1,2}可通过add(3)变为{1,2,3}) -
常见数据类型转换:
int("123")返回123(字符串转整数)、str(123)返回"123"(数字转字符串)、float("3.14")返回3.14(字符串转浮点数)、list("abc")返回['a','b','c'](字符串转列表,按字符拆分),无double()函数 -
列表与元组的区别:
-
可变性:列表
[1,2]可执行[1,2].append(3);元组(1,2)执行(1,2).append(3)报错 -
语法形式:列表
[1,2,3],元组(1,2,3),单个元素元组需写(5,)(而非(5)) -
适用场景:列表存动态数据(如
student_scores = [85,92,78],可随时添加新成绩);元组存固定数据(如point = (10,20),表示坐标不允许修改) -
成员方法:列表有
sort()([3,1,2].sort()变为[1,2,3]),元组仅有count()((1,2,2,3).count(2)返回2)
-
-
布尔类型:仅
True(真值,如1==1返回True)和False(假值,如1>2返回False)两个取值 -
空对象区分:空字典
dict()或{},空集合set(),空列表[],注意{}不是空集合 -
序列类型:列表
[1,'a']、元组(1,'a')、字符串"ab"均为序列,支持[索引]和切片操作
-
-
变量与命名规则
-
合法命名:
user_name(含下划线)、_age(以下划线开头)、num123(含数字),区分大小写(Name和name是两个不同变量) -
禁止规则:
123num(以数字开头)、if(Python关键字)、a#b(含特殊字符)均非法 -
运算符区别:
x=5(赋值,将5赋给x)、x==5(比较,判断x是否等于5)、a or (b:=2)(海象运算符,在表达式中给b赋值2)
-
-
字符串操作
-
定界符:
'Hello'(单引号)、"Hello"(双引号)、'''Hello\nWorld'''(三引号,支持换行),[Hello](方括号不能作为字符串定界符) -
常用方法:
-
strip():"abc123".strip("c1")去除首尾的'c'和'1',返回"ab23" -
upper():"Python".upper()返回"PYTHON" -
count():"Hello Python! Python".count("Python")返回2 -
replace():"Python".replace("P","J")返回"Jython" -
split():"hello world".split(" ")返回["hello","world"]
-
-
字符串运算:
"12"+"34"返回"1234"(拼接),"ab"*3返回"ababab"(重复),"e" in "hello"返回True(判断子串) -
切片操作:
"hello"[1:3]返回"el"(从索引1到2),"hey"[1:]返回"ey"(从索引1到末尾),"hello"[:-1]返回"hell"(从开头到倒数第2个)
-
-
列表操作
-
核心方法:
-
append():[1,2].append(3)变为[1,2,3](尾部添加) -
pop():[1,2,3].pop()返回3,列表变为[1,2];[1,2,3].pop(0)返回1,列表变为[2,3] -
insert():[1,2,3].insert(0,0)变为[0,1,2,3](指定位置插入) -
remove():[1,2,3].remove(2)变为[1,3](删除指定值)
-
-
列表推导式:
[x*2 for x in range(3)]遍历0,1,2,返回[0,2,4];[x for x in [1,2,3,4] if x%2==0]筛选偶数,返回[2,4] -
列表拼接:
[1,2] + [3,4]返回[1,2,3,4](生成新列表,原列表不变) -
索引访问:
['hey', 3, '你好'][2]返回'你好'(正向索引),['hey', 3, '你好'][-1]返回'你好'(反向索引)
-
-
字典与集合操作
-
字典核心特性:
{'name':'Tom', 'age':18},键'name'不可重复(重复赋值会覆盖,如dict['name']='Jerry'),键不能是列表({[1]:2}报错),值可重复({'a':1, 'b':1}合法) -
字典常用方法:
{'a':1, 'b':2}.keys()返回dict_keys(['a','b'])(所有键),{'a':1, 'b':2}.values()返回dict_values([1,2])(所有值) -
集合运算:
{1,2,3} - {3,4,5}返回{1,2}(差集),{1,2} | {3,2}返回{1,2,3}(并集),{1,2} & {2,3}返回{2}(交集)
-
-
函数与lambda表达式
-
函数定义:
def add(a,b): return a+b(有返回值);def print_hello(): print("Hello")(无返回值,默认返回None) -
函数调用:带默认参数的函数
def f1(a,b=0,c=3),调用方式:-
f1(5):a=5,b=0,c=3 -
f1(5,c=6):a=5,b=0,c=6 -
f1(b=1,c=6,a=2):参数顺序可调整
-
-
lambda表达式:
add = lambda x,y: x+y,调用add(3,4)返回7;(lambda x,y: x*y)(5,6)直接调用,返回30 -
递归函数:斐波那契数列
def fib(n): if n<=2: return n; return fib(n-1)+fib(n-2),调用fib(5)返回8(1,2,3,5,8) -
全局变量:
x=10; def change(): global x; x=20(用global声明后,函数内可修改全局变量x)
-
-
循环与条件语句
-
循环类型:
-
for循环:for x in "abc": print(x)依次打印a、b、c;for i in range(5): print('*')打印5个* -
while循环:i=1; while i<=3: print(i); i+=1打印1、2、3(需手动递增i,否则无限循环)
-
-
循环控制:
-
break:for i in range(5): if i==3: break; print(i)打印0、1、2(跳出循环) -
continue:for i in range(5): if i==3: continue; print(i)打印0、1、2、4(跳过当前次)
-
-
条件结构:
score=85; if score>=90: print('A') elif 80<=score<=89: print('B') else: print('C')(输出B) -
嵌套循环:九九乘法表
Pythonfor i in range(1,10): for j in range(1,i+1): print(f"{i}*{j}={i*j}", end=" ") print() -
三种程序结构:顺序结构(按顺序执行)、选择结构(
if-elif-else)、循环结构(for/while)
-
-
模块与库操作
-
导入方式:
import math(导入math库,调用math.sqrt(4));from math import sqrt(直接导入sqrt函数,调用sqrt(4));from math import *(导入所有函数,调用pow(2,3)) -
扩展库安装:命令行执行
pip install requests(安装requests库),也可使用conda install requests(Anaconda环境)
-
-
正则表达式
-
基础匹配:
\d匹配任意数字(如"a123b"中匹配1、2、3),^表示字符串开头(^abc匹配以abc开头的字符串),$表示字符串结尾(abc$匹配以abc结尾的字符串) -
量词含义:
-
*:"a*b"匹配"b"(0次a)、"ab"(1次a)、"aab"(2次a) -
+:"a+b"匹配"ab"(1次a)、"aab"(2次a),不匹配"b" -
?:"https?"匹配"http"(0次s)、"https"(1次s);"a.*?b"匹配"aab"中的"aab"(最短匹配) -
{n,m}:\d{11}匹配11位数字(如手机号13800138000);\d{2,4}匹配2-4位数字(如12、123、1234)
-
-
原始字符串应用:
-
正则表达式:
r'[0-9].[0-9]'匹配小数(如3.1),无需写'[0-9]\.[0-9]' -
文件路径:
r'C:\test\a.py'避免转义,无需写'C:\\test\\a.py'
-
-
常用函数:
re.findall(r'\d{3}', 'a12b345ccc678d90')返回['345','678'](查找所有3位数字);re.match(r'Python', 'testPython')返回None(从开头匹配,不匹配) -
模式示例:
r'^[0-9][a-z][A-Z]$'匹配"3Az"、"8aB"(3位,数字+小写字母+大写字母),不匹配"2d3"(最后一位不是大写字母)
-
-
文件操作
-
open()函数参数:open('test.txt', 'r', encoding='utf-8'),其中file='test.txt'(文件路径)、mode='r'(只读模式)、encoding='utf-8'(编码格式) -
打开模式:
-
文本模式:
'r'(只读)、'w'(只写,覆盖已有文件)、'a'(追加,在文件末尾写入)、'x'(只写,文件已存在则报错) -
二进制模式:
'rb'(二进制只读)、'wb'(二进制写入)、'xb'(二进制创建写入)
-
-
路径表示:
-
同级目录:
'b.txt'(a.py和b.txt在同一目录) -
绝对路径:
r'C:\test\b.txt'(Windows)、'/home/test/b.txt'(Linux)
-
-
上下文管理:
with open('test.txt', 'r') as f: content = f.read()(自动关闭文件,无需手动调用f.close())
-
-
迭代器与生成器
-
迭代器特性:
iter([1,2,3])生成迭代器,不能用[0]访问,需next(迭代器)取值(如it=iter([1,2]); next(it)返回1,再调用next(it)返回2);列表['hello',34,3.1]不是迭代器 -
生成器创建:
-
生成器函数:
def gen(): yield 1; yield 2,调用gen()返回生成器对象 -
生成器表达式:
(x*3 for x in range(4))返回生成器,首次调用next()返回0(0*3)
-
-
惰性求值:
gen = (x*2 for x in range(5))定义时不计算,调用list(gen)才生成[0,2,4,6,8] -
range()函数:range(1,10)生成1-9(9个元素);range(8,5,-1)生成8,7,6(非空,bool(range(8,5,-1))返回True)
-
-
运算符与表达式
-
算术运算符:
-
//(整除):100//3=33、10//3=3、7//2=3 -
%(取余):10%3=1、7%2=1、10%2=0 -
**(幂运算):3**2=9、3**1+2=5、2**0=1
-
-
比较运算符:
10 == 10.0返回True(值相等);10 is 10.0返回False(类型不同,内存地址不同);[1,2] == [1,2]返回True(值相等);[1,2] is [1,2]返回False(不同对象) -
求和相关:
sum([18,9,35,7,22,41])返回132(列表总和);sum(map(int, str(123456)))计算1+2+3+4+5+6=21(各位数字和) -
特殊表达式:
a=True; b=1; a or (b:=2); print(b)输出1(a为True,海象运算符不执行);a=False; a or (b:=2); print(b)输出2(a为False,执行赋值)
-
-
基础语法与标识符
-
标识符规则:合法标识符以字母或下划线开头,可包含字母、数字、下划线,如
he_llo、_、h123,非法标识符如123h(以数字开头) -
类定义:
class Student: def __init__(self, name): self.name = name(用class关键字) -
异常处理:
try: print(1/0) except ZeroDivisionError: print("除数不能为0")(捕获除零错误,程序不退出) -
序列索引:正向索引从0开始(
"hello"[0]='h'),反向索引从-1开始("hello"[-1]='o') -
Python程序扩展名:主要有
py(普通脚本)和pyw(无控制台窗口)两种 -
八进制转换:八进制数
32(前缀0o32)转换为十进制:3*8 + 2 = 26 -
除法类型:
1/2=0.5(浮点数除法),1//2=0(整数除法),print(type(1/2))输出<class 'float'> -
特殊语句:
i=1; ++i在Python中不是自增,等同于+(+i),i仍为1(自增需用i+=1)
-
-
编程实战要点
-
列表统计:
nums = [18,9,35,7,22,41]; total=sum(nums); max_num=max(nums); min_num=min(nums),输出"列表总和:132,最大值:41,最小值:7" -
文本处理:
text = "Hello Python! Python is easy"; count=text.count("Python"); new_text=text.replace("Python","Java"),打印原文本、计数(2)、替换后文本("Hello Java! Java is easy") -
成绩等级判断:
Pythonscore = int(input()) if score >=90: grade="A" elif 80<=score<=89: grade="B" elif 60<=score<=79: grade="C" else: grade="D" print(f"成绩 {score} 的等级为:{grade}")输入
85,输出"成绩 85 的等级为:B" -
满减活动计算:
Pythonx = int(input()) if x <=0: print("输入错误!") elif x <100: cost=x elif x <300: cost=x-30 elif x <500: cost=x-100 else: cost=x-200 print(f"您的消费金额为:{x},应付金额为:{cost}")输入
450,输出"您的消费金额为:450,应付金额为:350" -
递归计算斐波那契数列:
Pythonn = int(input()) def fib(n): if n<=2: return n return fib(n-1) + fib(n-2) print(fib(n))输入
5,输出8(第5项为8) -
九九乘法表:通过嵌套
for循环,内层range(1,i+1)控制列数,格式化输出每个乘法表达式,实现每行打印对应行数的乘法项
-
Python程序设计完整复习要点(含实例)
shy^-^cky2026-01-14 14:21