Jupyter
notebook · 数据探索 · 教学演示
在浏览器里交错写代码和说明,数据和教学演示常用。
正在打开工具详情…
脚本、数据分析、爬虫和不少课程作业的默认语言。
要写脚本、做分析,或课程指定 Python。
只想点选出统计图,不必先装语言,可看 JASP。
Python 是一门以可读性见长的通用编程语言,写脚本、做数据分析、爬网页、自动化重复操作和教学都常用它。它解决的是「想用尽量少的代码把一件事先跑通」。
生态是它最大的资本:标准库覆盖文件、网络、正则、日期这些日常需求,pip 加上 PyPI 的第三方包能直接接上数值计算(NumPy、pandas)、绘图、网页请求、自动化测试与机器学习框架;语法接近伪代码,改起来也快。
代价要提前知道:它是解释执行,纯计算性能不如编译型语言,重计算的场景通常靠 C 扩展或换语言;包与环境管理是新手最容易踩坑的地方,每个项目建议用虚拟环境隔离;另外 Python 2 已停止维护,遇到还在用 2 语法的教程要换掉。
许可证为 PSF License Version 2(Python 软件基金会许可第二版,条款与常见的 MIT / GPL 不同,商用前建议读一遍原文)。安装包从 python.org 下载;Windows 安装时勾选 Add python.exe to PATH,macOS 与 Linux 多数自带但版本可能偏旧。
上手步骤之外的具体做法:常见场景怎么配、命令怎么写、报错怎么处理。
围绕虚拟环境、包管理与解释器调用方式三条主线,讲清 Python 项目该怎么组织依赖,以及 `python -m` 与虚拟环境的常见错误。
python -m pipbashpython -m pip install requests而不是直接 pip install。原因是 pip 这个命令在 Windows 上可能指向另一个解释器装的版本——尤其当你同时装了多个 Python,或者用 --user 装过东西之后。python -m pip 里的 python 就是当前解释器,装的包一定落在它自己的 site-packages 里。
判断当前解释器是谁:
bashpython -c "import sys; print(sys.executable)"
python --version
python -m pip --version最后一条同时给出 pip 自身路径和它绑定的解释器版本,是排查「装到哪儿去了」最快的办法。
每个项目一个虚拟环境,不要往基础解释器里堆包:
bashpython -m venv .venv激活方式分平台:
bash# Windows (PowerShell / CMD)
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate激活后提示符会变(PowerShell 上通常是 (.venv) 前缀),此时 python 和 pip 都指向 .venv 里的版本。
三个易错点:
.venv 提交进 Git。 加进 .gitignore。virtualenv 替代 venv。 venv 是标准库自带的,无需额外安装;virtualenv 是第三方包,功能更强但多一个依赖。迁移环境或交付给别人时,导出依赖清单:
bashpython -m pip freeze > requirements.txt对方用 python -m pip install -r requirements.txt 还原。
py 启动器(Windows)Windows 上的 py 启动器可以挑具体版本,且不依赖 PATH 配置:
bashpy -3.12 script.py
py -3.12 -m venv .venv
py -0p # 列出本机所有可用版本在需要指定 Python 版本的脚本里,用 py 比用 python 可靠——后者可能命中 Microsoft Store 的别名,或者压根不存在。
现代项目用 pyproject.toml 声明元数据与依赖,而不是 setup.py:
toml[project]
name = "myproject"
version = "0.1.0"
requires-python = ">=3.10"
dependencies = [
"requests>=2.31",
]
[project.scripts]
mytool = "myproject.cli:main"开发模式安装(改代码即时生效,代替反复手动重装):
bashpython -m pip install -e .目录上把包放成 src/ 布局比平铺更清晰:项目根下只留配置,代码全在 src/包名/ 里。平铺布局里,测试目录容易被误当成包导入。
Python 用缩进划分代码块,没有花括号。所以混用 Tab 和空格会直接报 IndentationError,同一文件内必须统一用空格(官方规范是 4 个)。
多行字符串用三引号,四个单引号或三个双引号都可以,缩进会原样保留,常用于写 SQL 或 HTML 模板:
pythonquery = """
SELECT id, name
FROM users
WHERE created_at > %s
"""match 语句需要 3.10 以上,X | Y 形式的类型标注需要 3.10 以上,:= 海象运算符需要 3.8。写 pyproject.toml 里的 requires-python 之前先确认下限,别写出装不上包的声明。