前端 Python 3.12

2. 使用 Python 的解释器

启动 REPL、-c/-m 与脚本参数 sys.argv、交互提示符与源文件编码声明——对齐 Node REPL 与 CLI 心智。

2.1 启动解释器

  1. 常见命令(具体可执行名随安装方式变化)

    • Unix/Linux/macOS:终端里常用 python3 或带小版本 python3.12
    • Windows:安装器常注册 python / py 启动器
  2. 退出

    • Unix:Ctrl+D(EOF)
    • Windows:Ctrl+Z 后回车;或任何系统 quit()
  3. 三种常用启动形态(可对标 nodenode -enode script.js

    • 交互式:直接输入 python3,提示符下逐条执行。
    • 执行一串代码python3 -c "print(1+1)"(注意 shell 引号转义)。
    • 以模块方式跑python3 -m pip / python3 -m http.serversys.path[0] 常被置为当前工作目录,包内相对导入更安全)。
  4. 脚本跑完后进入交互python3 -i script.py(便于检查脚本留下的命名空间,类似在调试器外多停一会儿)。

  5. 行编辑:若安装带 Readline,多支持历史与补全;Ctrl+P 若出现上一行历史,多半已启用。

# 等价心智:node app.js  ↔  python app.py
# 一行执行:node -e "console.log(1+1)"  ↔  python -c "print(1+1)"
python -c "import sys; print(sys.version)"

2.2 命令行参数:sys.argv

sys.argv 是所有参数的字符串列表。它不是「已经解析好的选项对象」,复杂 CLI 交给 argparse(见标准库章)。

前端对照:接近 process.argv.slice(2) 再加上「脚本名 / -c 占位」这一段的差异。

场景sys.argv[0]其余
python script.py a bscript.py(或脚本的完整路径,依实现而定)['a','b',...]
python -c "code"字符串 '-c'-c 之后的参数
python -m pkg.mod a被解析模块的路径相关信息(别依赖格式做逻辑)跟在后面的参数

下面是一个「最小可运行」的 echo:把参数原样拼回去(演示切片,不是生产解析)。

import sys


def main() -> None:
    # argv[0] 往往是脚本名;真实项目里用 argparse 处理 flags
    print("argv:", sys.argv)
    print("payload:", sys.argv[1:])


if __name__ == "__main__":
    main()

2.3 交互模式

  • 主提示符 >>>;多行语句用 ... 续行,直到块结束。
  • 适合:验证 API、调试算法、当超级计算器。
  • 不适合:维护复杂状态——正式逻辑放进 .py 文件,用 if __name__ == "__main__": 做入口。
>>> x = [1, 2, 3]
>>> sum(n * n for n in x)
14

2.4 源文件编码

  • 默认 UTF-8(Python 3),可直接写中文注释。
  • 若必须用其它编码,可在文件前二行内声明:
# -*- coding: cp1252 -*-
  • 若第一行是 shebang #!/usr/bin/env python3,编码声明放在第二行即可。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
print("hello")

2.5 速记

你想做命令形态
临时试两行直接开 REPL 或 python -c "..."
把仓库当包跑入口python -m yourpkg.cli(减少 PYTHONPATH 手工折腾)
跑完脚本留在环境里python -i script.py

权威延伸2. Using the Python Interpreter

On this page