一、Python 概述与环境搭建

1.1 Python 的历史与特点

  • 发展历程:1989 年 Guido van Rossum 圣诞节期间开发,2008 年 Python 3.0 发布,2023 年 Python 3.12 新增模式匹配语法
  • 核心优势
    • 语法简洁:"Hello World" 仅需 1 行代码
    • 多范式支持:面向对象 / 函数式 / 命令式编程
    • 跨平台兼容:Windows/macOS/Linux 无缝运行
    • 丰富生态:38 万个第三方库(PyPI 统计)
  • 应用领域:Web 开发(Django/Flask)、数据分析(Pandas)、人工智能(TensorFlow)、自动化运维(Ansible)

1.2 版本选择与安装配置

  • 版本差异:Python 2(2020 年停止维护)vs Python 3(print 函数 / 整数除法),推荐安装 3.10 + 版本
  • 环境搭建
    • Windows:官网下载安装包,勾选 "Add Python to PATH"
    • macOS:通过 Homebrew 安装(brew install python@3.11)
    • Linux:系统自带 Python 3,通过 apt-get upgrade python3 更新
  • 验证安装:终端输入python --versionpython3 --version,显示 3.10.0 + 即成功

1.3 开发工具选择

  • IDLE:Python 自带 IDE,适合零基础入门,支持语法高亮与交互式运行
  • PyCharm:JetBrains 出品,社区版免费,专业版支持 Django / 科学计算
  • VS Code:安装 Python 插件后支持代码补全、调试与 Jupyter Notebook
  • Jupyter Notebook:网页交互式编程,适合数据分析与教学演示

二、Python 基础语法

2.1 变量与数据类型

  • 变量命名规则:字母 / 数字 / 下划线,不能以数字开头,区分大小写(age 与 Age 不同)
  • 基本数据类型
    • 整数(int):a = 10,支持二进制(0b1010)、八进制(0o12)、十六进制(0xa)
    • 浮点数(float):b = 3.14,科学计数法1e3(1000.0)
    • 字符串(str):单引号 / 双引号 / 三引号,name = "Python",支持索引与切片
    • 布尔值(bool):is_true = True,常用于条件判断
  • 类型转换int("123")str(3.14)float(True)(结果为 1.0)

2.2 运算符与表达式

  • 算术运算符+ - * / // % **(// 取整除,** 幂运算)
  • 比较运算符> < == != >= <=,返回布尔值
  • 逻辑运算符and or not,短路求值特性(False and 1/0不报错)
  • 赋值运算符= += -= *= /=a, b = 10, 20(多变量赋值)
  • 身份运算符is(内存地址比较)vs ==(值比较),a = [1]b = ab is a结果为 True

2.3 控制流语句

  • 条件语句

    python

    score = 85  
    if score >= 90:  
        print("优秀")  
    elif score >= 60:  
        print("及格")  
    else:  
        print("不及格")  
    
  • 循环结构
    • for 循环遍历序列:for i in range(5): print(i)(0-4)
    • while 循环条件控制:n = 0; while n < 5: n += 1
    • 循环控制:break(终止循环)、continue(跳过本次循环)
  • else 子句:循环正常结束时执行,for i in range(3): pass else: print("完成")

三、数据结构

3.1 列表(List)

  • 创建与访问fruits = ["apple", "banana"],通过索引fruits[0]访问
  • 常用操作
    • 添加元素:append("orange")(末尾)、insert(1, "grape")(指定位置)
    • 删除元素:pop(1)(按索引)、remove("banana")(按值)
    • 排序与反转:sort()(升序)、reverse()(反转)
  • 列表切片nums = [1,2,3,4,5]nums[1:4]([2,3,4]),nums[:-1](除最后元素)
  • 列表推导式[x*2 for x in range(5)]([0,2,4,6,8]),带条件[x for x in range(10) if x%2==0]

3.2 元组与字典

  • 元组(Tuple)
    • 不可变序列:point = (10, 20),无 append/pop 方法
    • 单元素元组:single = (5,)(必须加逗号)
    • 应用场景:函数返回多值return a, b,保护数据不被修改
  • 字典(Dictionary)
    • 键值对集合:person = {"name": "Alice", "age": 20}
    • 访问与修改:person["name"]person["gender"] = "female"
    • 常用方法:keys()(所有键)、values()(所有值)、items()(键值对)
    • 字典推导式:{k: v*2 for k, v in {"a":1, "b":2}.items()}

3.3 集合与字符串

  • 集合(Set)
    • 无序不重复:s = {1, 2, 3, 2}(结果为 {1,2,3})
    • 集合运算:交集(&)、并集(|)、差集(-)
    • 去重应用:list(set([1,2,2,3]))(结果为 [1,2,3])
  • 字符串操作
    • 常用方法:upper()(大写)、split(",")(分割)、strip()(去空格)
    • 格式化输出:"name: %s, age: %d" % ("Bob", 25),f-string:f"name: {name}, age: {age}"
    • 字符串切片:"Python"[1:4]("yth"),步长"Python"[::2]("Pto")

四、函数与模块

4.1 函数定义与调用

  • 基本语法

    python

    def greeting(name):  
        """返回问候语"""  # 文档字符串  
        return f"Hello, {name}!"  
    print(greeting("Python"))  # 输出Hello, Python!  
    
  • 参数类型
    • 位置参数:def add(a, b): return a + b
    • 默认参数:def power(x, n=2): return x**n
    • 关键字参数:add(b=5, a=3)(指定参数名)
    • 可变参数:def sum(*args): return sum(args)(接收元组)
  • 返回值:可返回多个值return a, b(实际返回元组)

4.2 函数进阶

  • 匿名函数lambda x: x*2,常与高阶函数配合list(map(lambda x: x+1, [1,2,3]))
  • 装饰器:在不修改原函数代码的情况下添加功能

    python

    def log(func):  
        def wrapper(*args, **kw):  
            print(f"call {func.__name__}()")  
            return func(*args, **kw)  
        return wrapper  
    @log  
    def now():  
        print("2025-07-28")  
    now()  # 输出call now()和2025-07-28  
    
  • 作用域:局部变量(函数内)、全局变量(模块内)、nonlocal 关键字(修改外层函数变量)

4.3 模块与包管理

  • 标准库使用

    python

    import os  
    print(os.getcwd())  # 获取当前目录  
    from datetime import datetime  
    print(datetime.now())  # 当前时间  
    
  • 第三方库安装pip install requests(安装请求库),pip list(查看已安装库)
  • 自定义模块
    • 创建my_module.py,定义函数def add(a,b): return a+b
    • 导入使用:from my_module import add
  • 包结构

    plaintext

    mypackage/  
      __init__.py  # 包初始化文件  
      module1.py  
      subpackage/  
        __init__.py  
        module2.py  
    

五、面向对象编程

5.1 类与对象基础

  • 类定义

    python

    class Student:  
        def __init__(self, name, age):  # 构造方法  
            self.name = name  
            self.age = age  
        def study(self):  # 实例方法  
            print(f"{self.name} is studying")  
    
  • 对象创建stu = Student("Tom", 18),调用方法stu.study()
  • 属性访问stu.name(实例属性),类属性Student.school = "High School"(所有实例共享)

5.2 继承与多态

  • 单继承

    python

    class MathStudent(Student):  
        def study(self):  # 方法重写  
            print(f"{self.name} is studying math")  
    math_stu = MathStudent("Jerry", 17)  
    math_stu.study()  # 输出Jerry is studying math  
    
  • 多继承class A(B, C): pass(注意 MRO 方法解析顺序)
  • 多态特性:不同对象调用同一方法呈现不同行为

    python

    def introduce(stu):  
        stu.study()  
    introduce(Student("Alice", 18))  # Alice is studying  
    introduce(MathStudent("Bob", 17))  # Bob is studying math  
    

5.3 面向对象高级特性

  • 封装:通过__前缀定义私有属性,class Person: def __init__(self): self.__age = 18(外部无法直接访问)
  • 魔术方法__str__(print 输出)、__len__(len () 调用)、__add__(+ 运算符重载)
  • 类方法与静态方法

    python

    class Clock:  
        @classmethod  
        def from_timestamp(cls, timestamp):  # 类方法  
            return cls(datetime.fromtimestamp(timestamp))  
        @staticmethod  
        def show_time():  # 静态方法  
            print(datetime.now().strftime("%H:%M:%S"))  
    

六、文件操作与异常处理

6.1 文件读写基础

  • 文本文件

    python

    # 写入文件  
    with open("test.txt", "w", encoding="utf-8") as f:  
        f.write("Hello, Python!\n")  
        f.writelines(["Line 1\n", "Line 2\n"])  
    # 读取文件  
    with open("test.txt", "r", encoding="utf-8") as f:  
        print(f.read())  # 读取全部内容  
        f.seek(0)  # 移动文件指针到开头  
        print(f.readline())  # 读取一行  
    
  • 文件打开模式:r(读)、w(写)、a(追加)、b(二进制)、+(读写)
  • 路径处理os.path.join("dir", "file.txt")(跨平台路径拼接)

6.2 异常处理机制

  • try-except 结构

    python

    try:  
        num = int(input("请输入数字:"))  
        print(10 / num)  
    except ValueError:  
        print("输入不是有效数字")  
    except ZeroDivisionError:  
        print("除数不能为0")  
    except Exception as e:  # 捕获所有异常  
        print(f"发生错误:{e}")  
    finally:  
        print("无论是否异常都会执行")  
    
  • 自定义异常

    python

    class CustomError(Exception):  
        pass  
    raise CustomError("自定义异常信息")  
    
  • 断言调试assert 1 == 2, "断言失败"(条件为 False 时触发 AssertionError)

6.3 数据格式处理

  • CSV 文件

    python

    import csv  
    with open("data.csv", "w", newline="") as f:  
        writer = csv.writer(f)  
        writer.writerow(["name", "age"])  
        writer.writerows([["Alice", 18], ["Bob", 20]])  
    
  • JSON 数据

    python

    import json  
    data = {"name": "Python", "version": 3.10}  
    json_str = json.dumps(data)  # 转为JSON字符串  
    data = json.loads(json_str)  # 解析JSON字符串  
    

七、实战项目与进阶

7.1 基础项目:猜数字游戏

  • 需求:程序随机生成 1-100 的数字,用户猜测并提示 "大了" 或 "小了",直到猜对
  • 技术点:random 模块、while 循环、条件判断、input 输入处理
  • 代码框架

    python

    import random  
    secret = random.randint(1, 100)  
    while True:  
        guess = int(input("请猜数字:"))  
        if guess > secret:  
            print("大了")  
        elif guess < secret:  
            print("小了")  
        else:  
            print("猜对了!")  
            break  
    

7.2 数据分析入门: matplotlib 绘图

  • 环境准备pip install matplotlib numpy
  • 折线图绘制

    python

    import matplotlib.pyplot as plt  
    import numpy as np  
    x = np.linspace(0, 2*np.pi, 100)  
    y = np.sin(x)  
    plt.plot(x, y)  
    plt.title("Sin Wave")  
    plt.xlabel("X")  
    plt.ylabel("Y")  
    plt.show()  
    

7.3 Web 开发入门:Flask 框架

  • 安装与基础应用

    python

    from flask import Flask  
    app = Flask(__name__)  
    @app.route("/")  
    def index():  
        return "Hello, Flask!"  
    if __name__ == "__main__":  
        app.run(debug=True)  # 访问http://localhost:5000  
    

八、学习资源与未来方向

8.1 推荐资源

  • 官方文档Python Documentation
  • 在线课程:Coursera "Python for Everybody"、Codecademy Python track
  • 书籍:《Python 编程:从入门到实践》《流畅的 Python》
  • 社区论坛:Stack Overflow(Python 标签)、掘金 Python 板块

8.2 进阶方向

  • 数据分析:Pandas 数据处理、NumPy 数值计算、数据可视化(Seaborn)
  • 人工智能:Scikit-learn 机器学习、TensorFlow 深度学习、自然语言处理(NLTK)
  • 自动化运维:Ansible 批量管理、SaltStack 配置管理、Fabric 远程部署
  • 游戏开发:Pygame 库、Unity3D Python 插件

8.3 常见问题解答

  • 学习误区:过度纠结语法细节,忽视项目实践;依赖教程而不主动思考
  • 效率提升:使用 IPython 交互式解释器、掌握 PyCharm 快捷键、善用搜索引擎
  • 职业发展:初级 Python 工程师→全栈开发→数据科学家→AI 工程师,平均薪资随经验增长

附录

  • 常用标准库速查:os(系统操作)、datetime(日期时间)、re(正则表达式)
  • pip 命令大全:安装(install)、卸载(uninstall)、查看(list)、换源(-i Simple Index
  • 练习题集:基础语法练习、数据结构应用题、项目实战题
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐