人工智能之编程进阶 Python高级:第十章 知识点总结

内容分享2天前发布
0 1 0

人工智能之编程进阶 Python高级

第十章 知识点总结

前言

学到这里基本上掌握了python的常用操作,但这些还未涉及到数据分析的部分,这些都只是对于语言的灵活运用,至于数据分析,将在后续栏目增加,一起努力学习,未来方向充满不确定,我们能做的就是不断学习,跟随政策,拥抱人工智能,打好地基,方能不被脱节。

Python 重大知识点全景图(从基础到网络编程)

目标:掌握 Python 从变量到爬虫的完整技术栈
结构:由浅入深,层层递进,每部分含核心概念 + 示例 + 注意事项

一、基础语法与内置类型

1. 变量与动态类型

  • Python 是 动态类型语言:变量无需声明类型,类型在运行时确定。
x = 10        # int
x = "hello"   # str(合法!)
  • 变量本质是对象引用:a = [1,2]; b = a → a 和 b 指向同一列表。

2. 核心内置类型

类型

特点

示例

int,float,complex

数值类型

3,3.14,1+2j

str

不可变 Unicode 字符串

“你好”,f”Hello {name}”

bool

布尔值(True/False)

bool(0) → False

NoneType

空值(单例)

x = None

3. 容器类型(重点!)

✅ 列表list

  • 有序、可变、允许重复
lst = [1, 2, 3]
lst.append(4)
lst[0] = 10

✅ 元组tuple

  • 有序、不可变、可哈希(可用作 dict key)
t = (1, 2, 3)
t = 1, 2, 3  # 省略括号

✅ 字典dict

  • 无序(Python 3.7+ 插入有序)、键值对、键必须可哈希
d = {"name": "Alice", "age": 30}
d["city"] = "Beijing"
for k, v in d.items(): ...

✅ 集合set

  • 无序、不重复、可变
s = {1, 2, 3}
s.add(4)
s1 & s2  # 交集

关键区别

  • list vs tuple:是否可变
  • dict vs set:是否有 value

二、控制结构与函数

1. 条件与循环

# if-elif-else
if x > 0:
    print("positive")
elif x == 0:
    print("zero")
else:
    print("negative")

# for 循环(迭代器协议)
for i in range(5):
    print(i)

# while
while n > 0:
    n -= 1

2. 函数定义

def greet(name: str, age: int = 18) -> str:
    """文档字符串"""
    return f"Hello {name}, you are {age}"

# 调用
greet("Alice")           # 位置参数
greet(age=20, name="Bob") # 关键字参数

高级特性:

  • 默认参数(注意 mutable 默认值陷阱!)
  • 可变参数:*args(元组)、**kwargs(字典)
  • 作用域:LEGB 规则(Local → Enclosing → Global → Built-in)

三、面向对象编程(OOP)

1. 类与实例

class Person:
    species = "Homo sapiens"  # 类属性

    def __init__(self, name):
        self.name = name      # 实例属性

    def say_hello(self):
        return f"Hi, I'm {self.name}"

p = Person("Alice")
print(p.say_hello())

2. 继承与多态

class Student(Person):
    def __init__(self, name, student_id):
        super().__init__(name)
        self.id = student_id

    def say_hello(self):  # 方法重写
        return f"Student: {self.name}"

3. 特殊方法(魔术方法)

  • __str__:用户友善字符串
  • __repr__:开发者调试字符串
  • __len__、__getitem__:使对象支持 len()、obj[key]

四、模块与包管理

1. 模块导入

import os
from math import sqrt
from datetime import datetime as dt

2. 包结构

mypackage/
    __init__.py  # 标识为包(Python 3.3+ 可省略)
    module1.py
    subpackage/
        __init__.py
        module2.py

3. 虚拟环境(必会!)

python -m venv myenv      # 创建
source myenv/bin/activate # Linux/macOS
myenvScriptsactivate    # Windows
pip install requests       # 安装到虚拟环境

五、文件与异常处理

1. 文件读写

# 推荐使用 with(自动关闭)
with open('data.txt', 'r', encoding='utf-8') as f:
    content = f.read()

with open('output.txt', 'w') as f:
    f.write("Hello")

2. 异常处理

try:
    x = int(input("Enter number: "))
except ValueError:
    print("Invalid input!")
else:
    print("Success")
finally:
    print("Always run")

✅ 最佳实践:**不要裸写 except:**,应捕获具体异常

六、高级特性(提升代码质量)

1. 列表推导式 / 生成器表达式

# 列表推导
squares = [x**2 for x in range(10) if x % 2 == 0]

# 生成器(节省内存)
gen = (x**2 for x in range(10))

2. 装饰器(Decorator)

def timer(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        print(f"{func.__name__} took {time.time()-start}s")
        return result
    return wrapper

@timer
def slow_func():
    time.sleep(1)

3. 上下文管理器(Context Manager)

class MyFile:
    def __enter__(self):
        print("Opening file")
        return self
    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Closing file")

with MyFile() as f:
    pass

七、并发与并行(见前文,此处简述)

模型

模块

适用场景

多线程

threading

I/O 密集(网络、磁盘)

异步 I/O

asyncio

高并发 I/O(Web 服务)

多进程

multiprocessing

CPU 密集(计算)

子进程

subprocess

调用外部程序

⚠️ 记住:Python 有 GIL,多线程不能并行 CPU

八、网络编程与数据获取(核心!)

1. 底层通信:socket

  • TCP/UDP 编程
  • 适合自定义协议

2. HTTP 客户端

工具

特点

urllib

标准库,功能全但繁琐

requests

第三方,简洁强劲,首选

import requests
resp = requests.get("https://api.example.com/data")
data = resp.json()

3. 动态页面处理:selenium

  • 控制真实浏览器
  • 执行 JavaScript、处理登录、滑块验证等

4. HTML 解析:BeautifulSoup

  • 提取结构化数据
  • 支持 CSS 选择器、XPath(需 lxml)
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'lxml')
titles = soup.select('h2.title')

5. 专业爬虫框架:Scrapy

  • 组件化:Spider、Item、Pipeline、Middleware
  • 内置去重、并发、中间件、导出格式(JSON/CSV)

九、常用标准库与第三方库速查

类别

标准库

第三方库

时间

datetime,time

arrow,pendulum

JSON

json

正则

re

日志

logging

单元测试

unittest,doctest

pytest

Web 开发

http.server

Flask,Django,FastAPI

数据分析

pandas,numpy

网络请求

urllib,http.client

requests,aiohttp

爬虫

BeautifulSoup,Scrapy,selenium

十、最佳实践与避坑指南

✅ 推荐做法

  1. 使用类型提示(Python 3.5+):def add(a: int, b: int) -> int:
    return a + b
  2. 虚拟环境隔离依赖
  3. **用 pathlib 替代 os.path**(更面向对象)
  4. logging 替代 print 做日志
  5. with 管理资源(文件、锁、连接)

❌ 常见错误

  • 可变对象作为函数默认参数:def f(x=[]) → 改为 x=None
  • 在循环中拼接字符串:改用 ''.join(list)
  • 忽略编码问题:始终指定 encoding='utf-8'
  • 在生产环境关闭 SSL 验证:verify=False(危险!)

十一、学习路径提议

  1. 1. 基础:变量、控制流、函数、文件
  2. 2. 进阶:OOP、异常、模块、装饰器
  3. 3. 实用技能
  4. requests + BeautifulSoup(静态爬虫)
  5. selenium(动态爬虫)
  6. asyncio(异步编程)
  7. Scrapy(工程化爬虫)
  8. 4. 扩展
  9. Web 框架(Flask/FastAPI)
  10. 数据库(SQLAlchemy / PyMongo)
  11. 部署(Docker, Gunicorn)

总结:Python 技术栈全景

基础语法 → 函数/OOP → 文件/异常 → 模块/包
     ↓
并发模型(threading/asyncio/multiprocessing)
     ↓
网络编程(socket → urllib → requests)
     ↓
网页解析(BeautifulSoup / lxml)
     ↓
动态渲染(selenium)
     ↓
工程化爬虫(Scrapy)
     ↓
数据存储(MySQL/MongoDB) + Web服务(FastAPI)

核心思想
Python 的优势在于 **“胶水语言” + 丰富生态<br/>不必精通所有细节,但要清楚 每个工具的定位与边界**,按需组合,高效解决问题。

这份总结涵盖了从零基础到网络数据获取的完整知识链,提议收藏并结合实践反复巩固。掌握这些,你已具备 Python 中高级开发能力!

资料关注

公众号:咚咚王

人工智能之编程进阶 Python高级:第十章 知识点总结

《Python编程:从入门到实践》
《利用Python进行数据分析》
《算法导论中文第三版》
《概率论与数理统计(第四版) (盛骤) 》
《程序员的数学》
《线性代数应该这样学第3版》
《微积分和数学分析引论》
《(西瓜书)周志华-机器学习》
《TensorFlow机器学习实战指南》
《Sklearn与TensorFlow机器学习实用指南》
《模式识别(第四版)》
《深度学习 deep learning》伊恩·古德费洛著 花书
《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》
《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen) 》
《自然语言处理综论 第2版》

Natural-Language-Processing-with-PyTorch》

《计算机视觉-算法与应用(中文版)》
《Learning OpenCV 4》
《AIGC:智能创作时代》杜雨+&+张孜铭
《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》
《从零构建大语言模型(中文版)》
《实战AI大模型》
《AI 3.0》

© 版权声明

相关文章

1 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    梦想家回访号 投稿者

    收藏了,感谢分享

    无记录