制器坊 编程基础

Python 基础:虚拟环境、运行脚本与 Traceback

创建独立环境,并确认 pip 与 Python 指向同一解释器。配合操作示例、图解和检查点,完成第一次练习,再逐步排查使用中的问题。

信息层级:【有据可查】= 附官方文档或可信来源链接;【社区共识】= 社区用户普遍经验,未经官方确认;【待考察/推测】= 推测或暂未能核实,请谨慎对待。

官方文档:docs.python.org(含 教程 与 内置函数)。【有据可查】


1. 为什么 AI 时代人人都该会一点 Python?

【社区共识】AI/数据领域的主力语言;Agent 生成的脚本、ComfyUI(ComfyUI 入门:安装、节点、模型文件与第一张图)、大部分模型工具都是 Python。语法接近自然语言,最适合入门。


2. 安装与运行

python3 --version          # Windows 上常为 python 或 py
python3 -m venv .venv      # 创建虚拟环境(强烈推荐,每个项目一个)
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install requests       # 安装第三方库
python3 hello.py

【社区共识】不要用 sudo pip install 往系统 Python 里装包;用虚拟环境,或 uv、pipx 等工具。


3. 语法速查

# 变量与基本类型
name = "Alice"          # str
age = 30                # int
height = 1.68           # float
is_ok = True            # bool
nothing = None

# 容器
nums = [1, 2, 3]                 # list 列表,可变
point = (3, 4)                   # tuple 元组,不可变
user = {"name": "Bob", "age": 25}  # dict 字典
tags = {"ai", "python"}          # set 集合

# 条件与循环(缩进决定代码块!)
if age >= 18:
    print("成年")
elif age > 12:
    print("青少年")
else:
    print("儿童")

for i, n in enumerate(nums):
    print(i, n)

# 函数
def greet(who: str, times: int = 1) -> str:
    return f"Hello, {who}! " * times

# 列表推导式
squares = [n * n for n in nums if n % 2 == 1]

# 异常处理
try:
    value = int("abc")
except ValueError as e:
    print("转换失败:", e)

# 文件读写(with 会自动关闭文件)
with open("notes.txt", "w", encoding="utf-8") as f:
    f.write("你好\n")

4. 常用内置函数与标准库

内置函数 用途 例子
print() 输出 print("a", 1, sep=",")
len() 长度 len(nums)
type() / isinstance() 类型检查 isinstance(x, int)
int() / float() / str() 类型转换 int("42")
range() 数字序列 range(0, 10, 2)
enumerate() / zip() 带序号遍历 / 并行遍历 zip(a, b)
sorted() / reversed() 排序 / 反转 sorted(users, key=lambda u: u["age"])
sum() / min() / max() 统计 max(nums)
map() / filter() 函数式处理 list(map(str, nums))
open() 文件 见上
input() 读取用户输入 —
dir() / help() 查看对象有哪些方法 help(str.split)
标准库模块 用途
os / pathlib 文件路径、目录、环境变量
sys 命令行参数 sys.argv、退出
json 读写 JSON
re 正则表达式
datetime 日期时间
subprocess 运行外部命令
collections Counter、defaultdict
logging 日志
argparse 命令行参数解析

5. 读懂 Traceback

Traceback (most recent call last):
  File "/home/me/app.py", line 12, in <module>
    main()
  File "/home/me/app.py", line 8, in main
    total = price * qty
            ~~~~~~^~~~~
TypeError: can't multiply sequence by non-int of type 'float'
图 1

口诀:从下往上读——最后一行是"什么错",最靠下的自己代码行是"在哪错"。【社区共识】

5.1 常见异常对照表

异常 含义 常见原因
SyntaxError 语法错误 漏冒号、括号不配对、中文标点
IndentationError 缩进错误 混用 Tab 与空格、缩进不一致
NameError: name 'x' is not defined 变量不存在 拼写错误、未定义就使用
TypeError 类型不对 "3" + 4、参数个数不对
ValueError 值不合法 int("abc")
KeyError: 'name' 字典没有这个键 用 d.get("name") 更安全
IndexError: list index out of range 下标越界 循环边界错误
AttributeError: 'NoneType' object has no attribute ... 对 None 调用方法 上一步函数没返回值
ModuleNotFoundError: No module named 'xxx' 没装库或不在当前虚拟环境 激活虚拟环境后 pip install xxx
FileNotFoundError 文件路径不对 相对路径以"当前工作目录"为准
UnicodeDecodeError 编码不对 open(..., encoding="utf-8")
PermissionError 无权限 文件被占用或无写权限

来源:内置异常【有据可查】


6. 和 AI 协作的提示【社区共识】


7. 本篇无法核实/需谨慎的点

  • 报错箭头(~~~^~~~)等提示格式依 Python 版本而异(3.11+ 更详细)。
  • 各平台 Python 命令名(python / python3 / py)不同。

小白练习:把本文流程逐项走通

练习目标:创建独立环境,并确认 pip 与 Python 指向同一解释器。

上文已介绍概念、配置和操作示例。下面侧重第一次实际操作时的顺序、检查点和结果核对;需要查具体参数时回到对应小节。命令逐条输入,看到上一条的结果后再继续。

  1. 先分别检查系统实际可用的 python、python3 或 py 命令,选择其中一个后贯穿同一练习。

    补充说明:Windows 可检查 py --version 或 python --version,macOS/Linux 可检查 python3 --version。后续命令名代表实际选中的解释器,不能无意换成另一套安装。

  2. 新建项目目录并进入它,再按原文创建 .venv。Windows PowerShell 激活入口是 ..venv\Scripts\Activate.ps1;cmd 与 Bash 入口不同。

    补充说明:Windows 创建环境可用 py -m venv .venv,POSIX 环境可用 python3 -m venv .venv;再选择当前终端对应的激活命令。cmd 用 .venv\Scripts\activate.bat,POSIX Bash 用 source .venv/bin/activate。

  3. 若暂时不能激活,也可以直接调用 .venv 中的 Python,例如 Windows 的 ..venv\Scripts\python.exe。

    补充说明:POSIX 环境的直接调用路径为 ./.venv/bin/python。用实际解释器执行 -c "import sys; print(sys.executable)",确认显示的路径属于本项目的 .venv。

  4. 把 print("Hello, Python!") 保存成 hello.py,再用这个解释器运行,确认看到预期输出。

    补充说明:保存为 UTF-8,并显示真实扩展名,避免 hello.py.txt。例如 Windows 运行 .\.venv\Scripts\python.exe hello.py,预期看到 Hello, Python!。上文较长语法示例应另存为 syntax_practice.py,它会输出多行并创建或覆盖练习目录的 notes.txt,与一行问候是两份练习。

  5. 安装依赖时使用同一解释器的 -m pip install,不凭 pip 这个命令名判断环境。

    补充说明:例如 Windows 用 .\.venv\Scripts\python.exe -m pip install requests,POSIX 环境用 ./.venv/bin/python -m pip install requests。安装后由同一解释器执行 -c "import requests; print(requests.__version__)" 确认;Hello World 本身不需要该包。

  6. 遇到错误保存完整 Traceback,先读最后一行,再找到属于自己的文件行;最后用小输入复测修复。

    补充说明:缩进决定语句所属代码块。速查表中的 d、x、users 是片段变量,需要先定义;遇到报错保留完整 Traceback,同时说明所用解释器路径,便于区分代码问题与环境问题。

继续浏览制器坊 返回顶部 ↑
教程图解100%
教程图解
灵犀台