1373 字
7 分钟
Python 札记 (1)
2026-08-24
NOTE

目录骨架来自菜鸟教程 Python3 基础章节,表述与细节对照 Python 官方文档 与相关 PEP 核对。基于 Python 3。完整出处见文末 参考

编码#

Python 3 把源文件默认当成 UTF-8:字符串、注释、标识符都可以写非 ASCII。官方教程 也提醒:标准库标识符只用 ASCII,要可移植就跟这个约定走。

一般不用写编码声明。若必须指定别的编码,声明必须单独占一行,出现在文件第一行;若第一行是 shebang,则放在第二行PEP 263):

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

coding: namecoding=name 两种写法都可以,编码名必须是 Python 认得的 codec。

Unix 上若希望 ./script.py 直接执行,shebang 用 envPATH 里找解释器,比写死路径稳。用 python script.py 调用时,shebang 会被忽略。1

标识符#

词法规则见 Lexical analysis:本质是 Unicode 的 XID_Start / XID_Continue,再加 _。入门可以记成:

  • 不能以数字开头。
  • 大小写敏感:countCount 不是同一个名字。
  • 不要用保留关键字当名字。可用 keyword.iskeyword() 判断。2
  • Unicode 标识符合法(中文、π),日常仍用英文。
age = 25
user_name = "Alice"
_total = 100 # 单下划线:约定「内部使用」(PEP 8)
MAX_SIZE = 1024 # 全大写:约定常量(PEP 8)

不合法:2nd_placeuser-nameclass$price

PEP 8:变量 / 函数 snake_case,类名 PascalCase。双下划线开头(如 __private)会触发名称改写,先别自己造这种名字。

注释#

# 到行末是注释,字符串字面量里面的 # 不算。3

# 整行注释
print("Hello, Python!") # 行尾注释

三引号 ''' / """字符串,不是注释语法。不赋给变量、不当 Docstring 时,求值后丢掉,看起来像「多行注释」。它不能嵌套;块里要补充说明用 #

'''
这段不会执行。
# 可以在里面写单行注释
'''
print("Hello, Python!")

文档字符串#

PEP 257:模块、类、函数(含方法)体中第一条语句若是字符串,解释器会把它存进 __doc__。推荐用 """,即使只有一行也用三引号。放在第一句之后就只是普通字符串,__doc__None

def add(a, b):
"""返回两数之和。"""
return a + b
print(add.__doc__) # 返回两数之和。
help(add) # 交互环境里可看说明,q 退出

多行 Docstring 写参数、返回值、异常。项目里选定一种风格(Google / NumPy / reST)并保持即可。

行、缩进与代码组#

缩进决定语句分组,不用 {}PEP 8 规定用 4 个空格,不要 Tab 和空格混用(混用会 TabError)。对不齐则 IndentationError

if True:
print("True")
else:
print("False")

if / while / for / def / class 以关键字开头、冒号 : 结尾,后面缩进的语句是 suite。复合语句 需要空块时用 pass

空行不是语法,解释器不靠它分组。PEP 8 建议顶层函数、类之间空两行,方法之间空一行。

同一物理行写多句可用分号 ;,PEP 8 不推荐当习惯。

多行语句#

显式续行:行末 \(字符串、注释里除外)。

total = item_one + \
item_two + \
item_three

隐式续行:括号 ()[]{} 内换行不必加 \,括号内还可以写注释。这是更常见的写法:

total = [
"item_one",
"item_two", # 可以注释
"item_three",
]

解释器:两种跑法#

官方说明见 Using the Python Interpreter

交互式#

输入 python3(Windows 上常见的是 py 启动器)。主提示符 >>>,续行 ...。Unix 用 Ctrl+D、Windows 用 Ctrl+Z 结束,或输入 quit()

$ python3
>>> print("Hello, Python!")
Hello, Python!

脚本式#

python3 hello.py

另外两种常用启动方式:python -c "print(1)" 执行一句;python -m 模块名 把模块当脚本跑(例如 python -m venv .venvpython -m pip install …)。-h 看全部开关。脚本自己的参数在 sys.argv

Windows 的 cmd 里不要把文档里的 $ 一起敲进去。

最小输出#

print(*objects, sep=' ', end='\n') 默认换行、参数之间空一格。同一行接着打用 end;多值换分隔符用 sep(见 print):

x = "a"
y = "b"
print(x)
print(y)
print(x, end=" ")
print(y, end=" ")
print()
print(1, 2, 3, sep="@") # 1@2@3
a
b
a b
1@2@3

input("提示") 会阻塞等回车。用别人的库之前要先 import


附录:保留关键字#

以本机解释器为准(keyword):

import keyword
print(keyword.kwlist)
print(keyword.iskeyword("class")) # True

按用途归类(便于扫一眼,不是官方分组):

类别关键字
True False None
逻辑and or not is in
条件if elif else
循环for while break continue
异常try except finally raise assert
函数def return lambda yield pass
class del
模块import from as
作用域global nonlocal
异步async await
资源with

3.9 起还有 soft keyword(如 match / case / type),只在特定语法位置保留,可用 keyword.issoftkeyword() / keyword.softkwlist 查看。

del 既是关键字,也是删除语句:可解绑名字、删属性、删切片。


参考#

官方文档(中文版 可对照阅读):

  1. Using the Python Interpreter — 交互 / 脚本、源文件编码、shebang 与编码声明的位置
  2. Lexical analysis — 编码声明、注释、显式/隐式续行、缩进、标识符与关键字
  3. Compound statements — 冒号与 suite
  4. keywordkwlist / iskeyword / soft keyword
  5. print()
  6. Unicode HOWTO — 源码 UTF-8 与编码声明

PEP:

  1. PEP 8 — Style Guide — 4 空格缩进、命名
  2. PEP 257 — Docstring Conventions
  3. PEP 263 — Defining Python Source Code Encodings

目录来源(骨架,不以它为准改语法):

  1. 菜鸟教程 · 基础语法
  2. 菜鸟教程 · 注释
  3. 菜鸟教程 · 解释器

Footnotes#

  1. Unix 可执行脚本依赖 shebang;Windows 主要靠文件关联和 py 启动器。官方教程把 shebang 写成 #!/usr/bin/env python3

  2. 硬关键字当变量名是 SyntaxError。附录只供查阅。

  3. 词法分析里注释从 # 到物理行结束,不含字符串内的井号。

Python 札记 (1)
https://blog.chuwu.top/posts/python/python1/
作者
ChuwuYo
发布于
2026-08-24
许可协议
CC BY-NC-SA 4.0