AI大模型应用开发之Python 入门基础
·
新手友好、循序渐进的学习路线
通俗语言 + 小例子 + 最终实战
Python 基础
装饰器 / 生成器 / 异步编程
Python 异步原理
数据结构优化
最后:手写一个【异步请求工具函数】
一、Python 基础(必须打牢)
1️⃣ 变量 & 基本类型(先记住 4 个)
a = 10 # int
b = 3.14 # float
c = "hello" # str
d = True # bool
📌 口诀:
数字、字符串、真假值
2️⃣ 容器类型(非常重要)
lst = [1, 2, 3] # 列表(可变)
tup = (1, 2, 3) # 元组(不可变)
dic = {"a": 1, "b": 2} # 字典(键值对)
set_ = {1, 2, 3} # 集合(去重)
📌 记忆法
- 列表:顺序 + 能改
- 字典:查找快
- 集合:去重
3️⃣ 函数(Python 的灵魂)
def add(a, b):
return a + b
print(add(2, 3))
二、生成器(Generator)——省内存神器
1️⃣ 普通函数 vs 生成器
def func():
return 1
def gen():
yield 1
yield 2
yield 3
g = gen()
print(next(g)) # 1
print(next(g)) # 2
📌 一句话理解
yield= 暂停函数,下次从这里继续
📌 为什么重要?
- 不一次性加载所有数据
- 适合大量数据 / 流式处理
三、装饰器(Decorator)——给函数“加功能”
1️⃣ 装饰器本质
函数包函数
def my_decorator(func):
def wrapper():
print("函数执行前")
func()
print("函数执行后")
return wrapper
@my_decorator
def say():
print("hello")
say()
📌 执行顺序
函数执行前
hello
函数执行后
📌 常见用途
- 打日志
- 统计耗时
- 权限校验
四、异步编程(重点)
1️⃣ 同步 vs 异步
同步
一件事做完 → 才做下一件
异步
等待时先干别的事
2️⃣ async / await 基础
import asyncio
async def task():
print("开始")
await asyncio.sleep(1)
print("结束")
asyncio.run(task())
📌 关键点
async def:定义异步函数await:遇到耗时操作,让出控制权
五、Python 异步原理
核心只有 3 个词:
1️⃣ 事件循环(Event Loop)
一个“调度员”,负责安排任务执行
2️⃣ 协程(Coroutine)
能暂停、能继续的函数(
async def)
3️⃣ await
告诉事件循环:
“我这会儿要等,你先去执行别人”
📌 一句话总结
Python 异步 = 单线程 + 任务切换 + 不阻塞
六、数据结构优化
1️⃣ 列表 vs 字典查找速度
# 慢
if x in my_list:
# 快
if x in my_dict:
📌 原因
- 字典是哈希表,查找 O(1)
2️⃣ 用 set 去重
lst = [1, 2, 2, 3]
new_lst = list(set(lst))
3️⃣ 用生成器减少内存
data = (i for i in range(1000000))
七、实战:手写一个【异步请求工具函数】
我们用 aiohttp(最常用)
1️⃣ 安装
pip install aiohttp
2️⃣ 最简单的异步 GET 请求
import aiohttp
import asyncio
async def fetch(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()
3️⃣ 升级版:通用异步请求工具函数(推荐)
import aiohttp
import asyncio
async def async_request(
url,
method="GET",
params=None,
data=None,
headers=None,
timeout=10
):
async with aiohttp.ClientSession(
timeout=aiohttp.ClientTimeout(total=timeout)
) as session:
async with session.request(
method=method,
url=url,
params=params,
data=data,
headers=headers
) as response:
return {
"status": response.status,
"text": await response.text()
}
4️⃣ 并发请求(异步真正的威力)
async def main():
urls = [
"https://httpbin.org/get",
"https://httpbin.org/get",
"https://httpbin.org/get"
]
tasks = [async_request(url) for url in urls]
results = await asyncio.gather(*tasks)
for r in results:
print(r["status"])
asyncio.run(main())
📌 这一步是质变
- 同时发多个请求
- 不阻塞
- 单线程高性能
八、最终口诀记忆总图(送你口诀)
🔑 Python 进阶口诀
生成器省内存
装饰器加功能
异步靠 await
并发用 gather
查找用字典
九、参考文档
《Python 编程:从入门到实践》
B 站黑马程序员 Python 进阶课
有任何问题欢迎在评论区交流。
更多推荐
所有评论(0)