AI Note

Python 开发

Python 语言学习笔记,从基础语法到实战应用,涵盖输入输出、运算符、交互式编程等核心知识

Python 开发

Python 是当今最流行的编程语言之一,以其简洁优雅的语法、强大的功能库和广泛的应用领域而闻名。无论是数据科学、Web 开发、自动化脚本还是 AI 应用,Python 都是首选语言。

为什么学习 Python?

入门门槛低,上限高

Python 的设计哲学强调代码可读性:

  • 语法简洁:接近自然语言,易于理解
  • 动态类型:无需声明变量类型,快速上手
  • 缩进强制:代码结构清晰,自带规范
  • 丰富的标准库:"内置电池",开箱即用

同时 Python 能力边界极广:

  • 初学者可以快速写出实用脚本
  • 高级开发者可以构建复杂的企业系统
  • 科学家用它处理海量数据和训练 AI 模型

应用领域广泛

数据科学与 AI

  • 机器学习:TensorFlow、PyTorch、Scikit-learn
  • 数据分析:Pandas、NumPy、Matplotlib
  • 深度学习:Keras、Hugging Face Transformers
  • 计算机视觉:OpenCV、Pillow

Web 开发

  • Django:全栈 Web 框架
  • Flask:轻量级微框架
  • FastAPI:现代高性能 API 框架
  • Scrapy:强大的爬虫框架

自动化与运维

  • 脚本自动化:文件处理、批量操作
  • 系统管理:Ansible、SaltStack
  • 测试自动化:pytest、unittest、Selenium
  • 网络编程:socket、asyncio

其他领域

  • 游戏开发:Pygame
  • 桌面应用:PyQt、Tkinter
  • 嵌入式:MicroPython
  • 量化交易:Pandas、TA-Lib

社区生态强大

  • PyPI:40 万+ 第三方包
  • 活跃社区:Stack Overflow、GitHub、Reddit
  • 丰富资源:免费教程、书籍、视频课程
  • 企业支持:Google、Facebook、Netflix 等大厂广泛使用

学习路径

阶段一:Python 基础(2-3 周)

基本语法

  • 变量和数据类型(int、float、str、bool)
  • 输入输出(input、print)
  • 运算符(算术、比较、逻辑)
  • 控制流程(if/elif/else、for、while)

数据结构

  • 列表(List):有序可变集合
  • 元组(Tuple):有序不可变集合
  • 字典(Dict):键值对映射
  • 集合(Set):无序不重复集合

函数和模块

  • 函数定义和调用
  • 参数传递(位置参数、关键字参数、默认参数)
  • Lambda 表达式
  • 模块导入和使用

阶段二:进阶特性(2-3 周)

面向对象编程

  • 类和对象
  • 继承和多态
  • 封装和属性
  • 魔术方法(__init____str__ 等)

文件操作

  • 文本文件读写
  • 二进制文件处理
  • 上下文管理器(with 语句)
  • JSON、CSV 数据处理

异常处理

  • try/except/finally
  • 自定义异常
  • 异常链

高级特性

  • 生成器和迭代器
  • 装饰器
  • 上下文管理器
  • 列表推导式

阶段三:专业方向(持续学习)

根据兴趣选择方向深入:

数据分析方向

  1. NumPy:数值计算
  2. Pandas:数据处理
  3. Matplotlib/Seaborn:数据可视化
  4. Jupyter Notebook:交互式编程

Web 开发方向

  1. Flask 快速入门
  2. Django 全栈开发
  3. 数据库操作(SQLAlchemy、Django ORM)
  4. RESTful API 设计

自动化方向

  1. 文件批量处理
  2. 网络爬虫(Requests、BeautifulSoup)
  3. 自动化测试(pytest、Selenium)
  4. 定时任务调度

本知识库内容结构

Python 基础模块

核心语法

开发环境配置

IDE 设置

核心概念深入

Python 之禅(The Zen of Python)

在 Python 解释器中输入 import this 可以看到 Python 的设计哲学:

Beautiful is better than ugly.           # 优美胜于丑陋
Explicit is better than implicit.        # 明了胜于晦涩
Simple is better than complex.           # 简洁胜于复杂
Readability counts.                      # 可读性很重要

这些原则指导着 Python 代码的编写风格。

输入输出基础

接收用户输入

# input() 返回字符串类型
name = input("请输入你的名字:")
print(f"你好,{name}!")

# 输入数字需要类型转换
age = int(input("请输入年龄:"))
if age >= 18:
    print("你已成年")

格式化输出

# 方式 1:f-string(推荐,Python 3.6+)
name = "Alice"
age = 25
print(f"姓名:{name},年龄:{age}")

# 方式 2:format 方法
print("姓名:{},年龄:{}".format(name, age))

# 方式 3:百分号格式化(旧式)
print("姓名:%s,年龄:%d" % (name, age))

运算符详解

算术运算符

a, b = 10, 3

print(a + b)   # 13  加法
print(a - b)   # 7   减法
print(a * b)   # 30  乘法
print(a / b)   # 3.333... 除法(浮点数)
print(a // b)  # 3   整除
print(a % b)   # 1   取余
print(a ** b)  # 1000 幂运算

比较运算符

print(5 > 3)   # True
print(5 == 5)  # True
print(5 != 3)  # True

逻辑运算符

print(True and False)  # False
print(True or False)   # True
print(not True)        # False

成员运算符

fruits = ["apple", "banana", "orange"]
print("apple" in fruits)      # True
print("grape" not in fruits)  # True

数据结构选择

数据结构特点使用场景
列表 List有序、可变、允许重复需要按顺序存储和访问数据
元组 Tuple有序、不可变、允许重复固定数据集合,作为字典的键
字典 Dict键值对、无序、键唯一快速查找、配置数据
集合 Set无序、不重复去重、集合运算

示例代码

# 列表
numbers = [1, 2, 3, 4, 5]
numbers.append(6)
print(numbers[0])  # 1

# 字典
person = {"name": "Alice", "age": 25}
print(person["name"])  # Alice

# 集合去重
data = [1, 2, 2, 3, 3, 3]
unique = set(data)
print(unique)  # {1, 2, 3}

开发环境配置

推荐 IDE

PyCharm(专业级)

  • 功能最强大的 Python IDE
  • 智能代码补全和调试
  • 集成版本控制、数据库工具
  • 社区版免费

VS Code(轻量级)

  • 轻量快速,跨平台
  • 丰富的 Python 扩展
  • 内置终端和 Git
  • 完全免费

Jupyter Notebook(数据科学)

  • 交互式编程环境
  • 支持代码、Markdown、可视化混合
  • 适合数据分析和教学

虚拟环境管理

为什么需要虚拟环境?

  • 隔离项目依赖,避免版本冲突
  • 每个项目独立的包环境
  • 方便部署和迁移

创建虚拟环境

# 使用 venv(Python 3.3+)
python -m venv myenv

# 激活虚拟环境
# Windows
myenv\Scripts\activate
# macOS/Linux
source myenv/bin/activate

# 安装依赖
pip install requests pandas

# 导出依赖列表
pip freeze > requirements.txt

# 在其他环境安装
pip install -r requirements.txt

包管理工具

pip(默认)

# 安装包
pip install package_name

# 安装特定版本
pip install package_name==1.2.3

# 升级包
pip install --upgrade package_name

# 卸载包
pip uninstall package_name

# 查看已安装包
pip list

conda(数据科学推荐)

  • 管理 Python 版本
  • 处理复杂依赖
  • 支持非 Python 包(如 C 库)

最佳实践

代码规范(PEP 8)

# 命名规范
class MyClass:          # 类名:大驼峰
    pass

def my_function():      # 函数名:小写下划线
    pass

MY_CONSTANT = 100       # 常量:全大写下划线

my_variable = 42        # 变量:小写下划线

# 缩进:4 个空格
def example():
    if True:
        print("正确缩进")

# 每行不超过 79 字符
long_string = (
    "这是一个很长的字符串,"
    "分成多行更易读"
)

# 适当的空行
def function1():
    pass


def function2():  # 函数之间空两行
    pass

调试技巧

使用 print 调试

def calculate(a, b):
    print(f"Debug: a={a}, b={b}")  # 调试输出
    result = a + b
    print(f"Debug: result={result}")
    return result

使用 pdb 调试器

import pdb

def buggy_function():
    x = 10
    pdb.set_trace()  # 设置断点
    y = x * 2
    return y

使用 logging 模块

import logging

logging.basicConfig(level=logging.DEBUG)

def process_data(data):
    logging.debug(f"处理数据:{data}")
    logging.info("数据处理完成")

性能优化

使用生成器节省内存

# 不好:占用大量内存
numbers = [x * x for x in range(1000000)]

# 好:按需生成
numbers = (x * x for x in range(1000000))

使用内置函数

# 慢:手动循环
total = 0
for num in numbers:
    total += num

# 快:内置函数
total = sum(numbers)

列表推导式 vs 循环

# 慢
squares = []
for x in range(100):
    squares.append(x * x)

# 快
squares = [x * x for x in range(100)]

学习资源

官方文档

在线教程

  • 廖雪峰 Python 教程:适合中文初学者
  • Real Python:高质量英文教程
  • LeetCode:算法练习(Python 实现)

推荐书籍

  • 《Python 编程:从入门到实践》:零基础入门
  • 《流畅的 Python》:进阶必读
  • 《Python Cookbook》:实用技巧集
  • 《Effective Python》:最佳实践

实战平台

  • Kaggle:数据科学竞赛
  • GitHub:开源项目学习
  • Exercism:编程练习平台

常见问题

1. 缩进错误

# 错误:缩进不一致
def my_function():
    print("line 1")
      print("line 2")  # IndentationError

# 正确:统一使用 4 个空格
def my_function():
    print("line 1")
    print("line 2")

2. 可变默认参数陷阱

# 错误:默认参数是可变对象
def append_to(element, target=[]):
    target.append(element)
    return target

print(append_to(1))  # [1]
print(append_to(2))  # [1, 2]  # 意外!

# 正确:使用 None 作为默认值
def append_to(element, target=None):
    if target is None:
        target = []
    target.append(element)
    return target

3. 整数除法

# Python 2 vs Python 3 差异
# Python 2
print(5 / 2)   # 2(整除)

# Python 3
print(5 / 2)   # 2.5(浮点数除法)
print(5 // 2)  # 2(整除)

内容导航

基础知识

开发工具


学习建议:Python 入门容易,但精通需要时间。建议从基础语法开始,逐步深入数据结构、面向对象、函数式编程等高级特性。最重要的是多写代码,多做项目。

项目驱动学习

  • 初级:计算器、猜数字游戏、文件管理工具
  • 中级:简单爬虫、Flask Web 应用、数据分析脚本
  • 高级:完整的 Web 系统、机器学习项目、自动化运维工具

社区参与:加入 Python 中文社区、参与开源项目、分享你的学习笔记。在帮助他人的过程中,你会学得更深入。

Python 的世界无限广阔,保持好奇心,持续学习,你会发现编程的乐趣。

On this page