一、Python 简介

Python是一种解释型、面向对象、动态类型的高级编程语言。由Guido van Rossum于1989年发明,1991年首次发布。Python以其简洁优雅的语法、丰富的库生态和广泛的应用领域,成为当今最受欢迎的编程语言之一。
Python的设计哲学强调代码的可读性和简洁性,其核心格言是"简单优于复杂,明确优于隐晦"。

二、Python 安装步骤

2.1 Windows 系统安装与环境配置

2.1.1 下载与安装

步骤一:下载Python

  • 访问Python官方网站:https://www.python.org/downloads/
  • 选择最新稳定版本(如Python 3.12.x)
  • 下载Windows安装包(64位推荐)
    步骤二:运行安装程序
1. 双击下载的 .exe 文件
2.  勾选 "Add Python to PATH"(重要!自动配置环境变量)
3. 选择 "Install Now" 或自定义安装路径
2.1.2 手动配置环境变量(关键步骤)

如果安装时忘记勾选 “Add Python to PATH”,或者需要修改配置,请按以下步骤操作:
方法一:通过系统设置配置(推荐)
步骤一:打开环境变量设置

方式1:右键"此电脑" → 属性 → 高级系统设置 → 环境变量
方式2:按 Win+S,搜索"环境变量" → 编辑系统环境变量
方式3:按 Win+R,输入:sysdm.cpl → 高级 → 环境变量

步骤二:添加 Python 路径
在"系统变量"区域,找到 Path 变量,点击"编辑",添加以下两个路径:

# 假设Python安装在默认路径(需替换实际安装路径和用户名)
C:\Users\<用户名>\AppData\Local\Programs\Python\Python312\
C:\Users\<用户名>\AppData\Local\Programs\Python\Python312\Scripts\
# 或者如果安装在全系统路径
C:\Python312\
C:\Python312\Scripts\

说明

  • 第一个路径:让 python 命令全局可用
  • 第二个路径:让 pip 命令全局可用
    步骤三:重启命令提示符
⚠️ 重要:修改环境变量后,必须关闭所有命令提示符窗口
重新打开 cmd 才能生效

方法二:使用命令行配置(快速)

# 以管理员身份运行 PowerShell,执行以下命令:
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Python312\;C:\Python312\Scripts\", "User")
# 验证是否添加成功
$env:Path -split ';' | Select-String "Python"
2.1.3 验证安装
# 打开命令提示符(Win+R 输入 cmd),输入:
python --version
pip --version
# 查看安装路径
where python
where pip
2.1.4 环境变量配置常见问题
问题 原因 解决方案
'python' 不是内部或外部命令 环境变量未配置或配置错误 检查Path变量是否包含Python路径
python 命令指向 Microsoft Store Windows默认别名冲突 关闭应用执行别名,或修改Path顺序
修改后仍无法识别 未重启命令提示符 关闭所有cmd窗口重新打开
多版本Python冲突 Path中存在多个Python路径 调整路径顺序或使用虚拟环境
2.1.5 多版本Python共存管理
# 使用Python Launcher (py.exe) 管理多版本
py -3.12 script.py      # 使用Python 3.12运行
py -3.10 script.py      # 使用Python 3.10运行
py --list               # 列出所有已安装版本

2.2 macOS 系统安装

# 方法一:使用Homebrew(推荐)
brew install python
# 方法二:官网下载安装包
# 下载 .pkg 文件,双击安装
# 验证安装
python3 --version
# 环境变量配置(如需)
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

2.3 Linux 系统安装

# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip
# CentOS/RHEL
sudo yum install python3 python3-pip
# 验证安装
python3 --version
# 环境变量配置(如需)
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

2.4 虚拟环境配置(推荐)

# 创建虚拟环境
python -m venv myenv
# 激活虚拟环境
# Windows:
myenv\Scripts\activate
# macOS/Linux:
source myenv/bin/activate
# 安装依赖包
pip install package_name
# 退出虚拟环境
deactivate

三、Python 基本用法

3.1 基础语法

# 1. 变量与数据类型
name = "Python"          # 字符串
age = 33                 # 整数
price = 9.99             # 浮点数
is_active = True         # 布尔值
# 2. 数据结构
# 列表(可变)
fruits = ["apple", "banana", "cherry"]
fruits.append("orange")
# 元组(不可变)
coordinates = (10, 20)
# 字典(键值对)
person = {"name": "张三", "age": 25}
# 集合(无序不重复)
unique_numbers = {1, 2, 3, 3}  # 结果: {1, 2, 3}

3.2 控制流程

# 条件判断
score = 85
if score >= 90:
    print("优秀")
elif score >= 60:
    print("及格")
else:
    print("不及格")
# 循环结构
# for循环
for i in range(5):
    print(f"第{i+1}次循环")
# while循环
count = 0
while count < 3:
    print(count)
    count += 1
# 列表推导式(Python特色)
squares = [x**2 for x in range(10)]

3.3 函数定义

# 基本函数
def greet(name):
    """这是一个问候函数"""
    return f"你好,{name}!"
# 默认参数
def power(base, exp=2):
    return base ** exp
# 可变参数
def sum_all(*args):
    return sum(args)
# 关键字参数
def create_profile(**kwargs):
    return kwargs
# Lambda表达式
square = lambda x: x ** 2

3.4 类与对象

class Animal:
    """动物基类"""
    
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def speak(self):
        raise NotImplementedError("子类必须实现此方法")
class Dog(Animal):
    """狗类,继承自动物类"""
    
    def speak(self):
        return f"{self.name}说:汪汪汪!"
    
    def fetch(self, item):
        return f"{self.name}捡回了{item}"
# 使用示例
dog = Dog("旺财", 3)
print(dog.speak())  # 输出:旺财说:汪汪汪!

3.5 文件操作

# 读取文件
with open("input.txt", "r", encoding="utf-8") as f:
    content = f.read()
# 写入文件
with open("output.txt", "w", encoding="utf-8") as f:
    f.write("Hello, Python!")
# 逐行读取
with open("data.txt", "r") as f:
    for line in f:
        print(line.strip())

四、Python 高级用法

4.1 装饰器

import functools
import time
# 计时装饰器
def timer(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        end = time.time()
        print(f"{func.__name__} 执行时间: {end-start:.4f}秒")
        return result
    return wrapper
@timer
def slow_function():
    time.sleep(1)
    return "完成"
# 带参数的装饰器
def repeat(times):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args, **kwargs):
            for _ in range(times):
                result = func(*args, **kwargs)
            return result
        return wrapper
    return decorator
@repeat(times=3)
def say_hello():
    print("Hello!")

4.2 生成器与迭代器

# 生成器函数
def fibonacci(n):
    """生成斐波那契数列"""
    a, b = 0, 1
    for _ in range(n):
        yield a
        a, b = b, a + b
# 使用生成器
for num in fibonacci(10):
    print(num, end=" ")
# 生成器表达式
even_squares = (x**2 for x in range(10) if x % 2 == 0)
# 自定义迭代器
class Countdown:
    def __init__(self, start):
        self.current = start
    
    def __iter__(self):
        return self
    
    def __next__(self):
        if self.current <= 0:
            raise StopIteration
        self.current -= 1
        return self.current + 1

4.3 上下文管理器

from contextlib import contextmanager
# 使用类实现
class DatabaseConnection:
    def __init__(self, db_url):
        self.db_url = db_url
    
    def __enter__(self):
        print(f"连接数据库: {self.db_url}")
        return self
    
    def __exit__(self, exc_type, exc_val, exc_tb):
        print("关闭数据库连接")
        return False
# 使用装饰器实现
@contextmanager
def timer_context():
    start = time.time()
    yield
    end = time.time()
    print(f"代码块执行时间: {end-start:.4f}秒")
# 使用示例
with DatabaseConnection("mysql://localhost/mydb") as db:
    print("执行数据库操作")

4.4 元类

# 元类示例
class SingletonMeta(type):
    """单例模式元类"""
    _instances = {}
    
    def __call__(cls, *args, **kwargs):
        if cls not in cls._instances:
            cls._instances[cls] = super().__call__(*args, **kwargs)
        return cls._instances[cls]
class Database(metaclass=SingletonMeta):
    def __init__(self):
        self.connected = False
# 测试单例
db1 = Database()
db2 = Database()
print(db1 is db2)  # True

4.5 异步编程

import asyncio
# 异步函数
async def fetch_data(url):
    print(f"正在获取: {url}")
    await asyncio.sleep(1)  # 模拟IO操作
    return f"{url}的数据"
async def main():
    # 并发执行
    tasks = [
        fetch_data("url1"),
        fetch_data("url2"),
        fetch_data("url3")
    ]
    results = await asyncio.gather(*tasks)
    for r in results:
        print(r)
# 运行异步代码
asyncio.run(main())

4.6 并发编程

import threading
import multiprocessing
from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor
# 多线程
def worker(n):
    return n ** 2
with ThreadPoolExecutor(max_workers=4) as executor:
    results = list(executor.map(worker, range(10)))
# 多进程
with ProcessPoolExecutor(max_workers=4) as executor:
    results = list(executor.map(worker, range(10)))

五、Python 原理架构图

5.1 Python 执行流程架构图

操作系统

底层实现

运行时环境

对象系统

内存管理

执行阶段

编译阶段

源代码层

Python源代码
.py文件

词法分析器
Lexer

语法分析器
Parser

抽象语法树
AST

编译器
Compiler

字节码
.pyc文件

Python虚拟机
PVM

执行栈
Value Stack

名字空间
Namespace

引用计数
Reference Counting

垃圾回收
Garbage Collector

PyObject
对象基类

类型对象
Type Object

内建类型
Built-in Types

标准库
stdlib

第三方包
PyPI

C扩展模块
Extension Modules

CPython解释器
C语言实现

文件系统

网络通信

进程线程

系统调用

5.2 Python 对象模型架构图

整数类型

字符串类型

列表类型

字典类型

函数对象

模块对象

数值方法

序列方法

映射方法

PyObject

+ob_refcnt: 引用计数

+ob_type: 类型指针

PyTypeObject

+tp_name: 类型名称

+tp_basicsize: 基础大小

+tp_methods: 方法列表

PyNumberMethods

+nb_add: 加法

+nb_subtract: 减法

+nb_multiply: 乘法

PySequenceMethods

+sq_length: 长度

+sq_item: 索引访问

+sq_concat: 连接

PyMappingMethods

+mp_length: 长度

+mp_subscript: 索引

int

str

list

dict

function

module

所有Python对象的基类\n位于C语言层面

5.3 Python 内存管理架构图

内存池

内存层次

垃圾回收

第0代
年轻对象

第1代
中生代对象

第2代
老年代对象

Python对象层

内存池层
PyMem

操作系统层
malloc/free

小对象池
< 512字节

大对象
直接分配

5.4 Python 模块导入机制流程图

模块对象 加载器 Loader 查找器 MetaPathFinder import语句 用户代码 模块对象 加载器 Loader 查找器 MetaPathFinder import语句 用户代码 alt [模块已缓存] [模块未缓存] import mymodule 查找模块 sys.meta_path遍历 检查sys.modules缓存 返回缓存模块 查找文件/内置模块 创建加载器 创建模块对象 执行模块代码 缓存到sys.modules 返回模块对象 模块可用

5.5 Python 异步编程架构图

底层实现

执行流程

asyncio核心

IO就绪

IO未就绪

事件循环
Event Loop

任务队列
Task Queue

协程
Coroutine

注册协程

创建Task

事件循环调度

await挂起

恢复执行

切换其他任务

任务完成

selectors
IO多路复用

Future对象

回调函数

5.6 架构关键点总结表

组件 作用 核心技术点
词法分析器 将源代码转为Token序列 有限状态机、正则表达式
语法分析器 构建抽象语法树AST LL(1)、递归下降分析
编译器 生成字节码.pyc文件 符号表管理、优化器
PVM 执行字节码指令 栈式虚拟机、解释器循环
PyObject 所有对象的C结构基类 结构体、多态实现
内存池 小对象高效分配 内存碎片减少、Arena分配
分代GC 循环引用垃圾回收 标记-清除、三代回收
Event Loop 异步任务调度核心 IO多路复用、回调机制

六、Python 最佳实践

6.1 代码风格(PEP 8)

# 遵循PEP 8代码风格
# 使用pylint、flake8、black等工具检查
# 命名规范
module_name.py          # 模块:小写+下划线
ClassName               # 类:驼峰命名
function_name           # 函数:小写+下划线
CONSTANT_NAME           # 常量:大写+下划线
_private_var            # 私有属性:单下划线前缀
# 导入顺序
import os               # 标准库
import numpy as np      # 第三方库
from mymodule import myfunc  # 本地模块

6.2 常用第三方库

领域 推荐库
数据分析 NumPy, Pandas, Polars
机器学习 Scikit-learn, TensorFlow, PyTorch
Web开发 Django, Flask, FastAPI
爬虫 requests, BeautifulSoup, Scrapy
可视化 Matplotlib, Seaborn, Plotly
测试 pytest, unittest, mock
异步 asyncio, aiohttp, uvloop

七、总结

Python凭借其简洁的语法、强大的功能和丰富的生态系统,已成为现代软件开发的重要工具。从简单的脚本到复杂的人工智能应用,Python都能胜任。掌握Python的核心概念和高级特性,将使你成为一名更优秀的开发者。
学习建议:

  1. 从基础语法开始,循序渐进
  2. 多动手实践,项目驱动学习
  3. 阅读优秀开源项目的源代码
  4. 参与社区讨论,持续学习新特性
Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐