Python 基础语法
环境装好后,我们来系统过一遍 Python 的基础语法。这一章不涉及复杂概念,只讲程序"长什么样"——缩进、注释、关键字、代码结构。读完你就能看懂任何 Python 代码的大致框架。
1. Python 程序的基本结构
一个 Python 程序最少就是一行代码,没有 C 语言那样的 main() 函数、没有 Go 的 package main。脚本从上往下逐行执行。要"组织"代码时,才用 def 定义函数、class 定义类。
# Python 用缩进表示代码块(通常 4 个空格)
def greet(name):
if name:
# 下一行缩进更深,属于 if 内部
message = "Hello, " + name
print(message)
# 缩进回到 if 外层,属于 greet 函数
print("完成")
# 缩进回到函数外层,是顶层语句
greet("小明")
# 输出:
# Hello, 小明
# 完成几个要点:
- 没有花括号
{}:Python 用缩进(行首的空白)表示代码层级,通常用 4 个空格(PEP 8 推荐)。 - 没有分号:语句末尾不需要
;,换行就是语句结束。 - 没有
main():顶层代码直接执行,函数定义外的语句一运行就生效。
2. 缩进是语法的一部分(重要!)
这是 Python 最特别、也是新手最容易踩坑的地方。在其他语言里缩进只是"美观",错了照样能跑;但在 Python 里缩进就是语法,错了会直接报错。
# ❌ 错误:同一个代码块缩进不一致
def f():
a = 1
b = 2 # 这行少了 1 个空格,会报 IndentationError
print(a)
# ❌ 错误:混用 Tab 和空格
def g():
name = "x" # Tab 缩进
age = 20 # 空格缩进,会报错规则很简单:
- 同一个代码块里所有语句缩进必须完全一致(同样数量的空格)。
- 不要混用 Tab 和空格——这是 Python 报错重灾区。VS Code 默认用 4 个空格,跟着走就行。
- 冒号
:后面一定要缩进(if、for、def、class都以冒号开头)。
3. 注释
注释是给人看的,解释器会忽略。# 后面的内容就是单行注释;多行注释用三引号字符串。
# 这是单行注释,# 开头,到行尾结束
# 注释可以独占一行,也可以跟在代码后面
age = 20 # 这是年龄变量
"""
这是多行注释(其实是字符串),
用三引号包裹,可以跨多行。
常用于函数/类的文档说明(docstring)。
"""
'''
也可以用三个单引号,效果一样
'''三引号字符串的"特殊用法":紧跟在 def 或 class 后面的第一个字符串,叫文档字符串(docstring),会被 Python 当作函数/类的说明文档,用 help(函数名) 就能看到。养成写 docstring 的习惯,代码可读性立刻提升。
4. 语句与多行书写
Python 默认一行就是一条语句,但有时一行写不下,有几种续行方式:
# 一行一条语句,不需要分号
a = 1
b = 2
# 一行写多条语句,用分号分隔(不推荐,可读性差)
c = 3; d = 4; print(c + d)
# 一条语句跨多行:用反斜杠 \ 续行
total = 1 + 2 + 3 + \
4 + 5 + 6
print(total) # 21
# 推荐:用括号自动续行,更清晰
names = [
"Alice",
"Bob",
"Charlie",
]推荐用括号(圆括号、方括号、花括号)续行,可读性比反斜杠好得多——这也是 PEP 8 的建议。
5. 标识符与命名规则
标识符就是程序员自己起的名字(变量、函数、类)。Python 命名规则:
- 由字母、数字、下划线组成,不能以数字开头。
my_var、_count、user2合法;2var、my-var(含连字符)非法。 - 区分大小写:
Age和age是两个变量。 - 不能是关键字:
class、for、if等保留词不能用。 - 约定俗成的命名风格(PEP 8):
- 变量、函数:
snake_case(小写下划线),如user_name、get_age()。 - 类:
PascalCase(大驼峰),如MyDog、HttpClient。 - 常量:
UPPER_CASE(全大写),如MAX_SIZE、PI。 - 私有(约定):以下划线开头,如
_internal、__hidden。
- 变量、函数:
6. Python 的关键字
Python 3.12 共有 35 个关键字(保留词),不能用作变量名。在解释器里输入下面代码就能查全:
import keyword
# 打印 Python 全部关键字
print(keyword.kwlist)
# Python 3.12 共 35 个关键字:
# False None True and as assert async await
# break class continue def del elif else except
# finally for from global if import in is
# lambda nonlocal not or pass raise return
# try while with yield match case
# 关键字不能用作变量名
# ❌ 错误: class = "我的类" -> SyntaxError不用刻意背,用多了自然记住。按用途分组记忆更容易:
- 值:
TrueFalseNone - 逻辑:
andornotinis - 控制流:
ifelifelseforwhilebreakcontinuepassreturnmatchcase - 函数/类:
defclasslambdaglobalnonlocalyieldasyncawait - 导入/模块:
importfromas - 异常:
tryexceptfinallyraiseassert - 上下文/删除:
withdel
7. PEP 8 代码风格
Python 社区有一份官方代码风格指南叫 PEP 8,几乎所有公司都遵守。几个最常用的规则:
- 缩进用 4 个空格(不用 Tab)。
- 每行不超过 79 字符(注释不超过 72),保持编辑器分屏友好。
- 函数和类之间空 2 行,方法之间空 1 行。
- 运算符两边各留一个空格:
a = b + c,而不是a=b+c。 - 逗号后面加一个空格:
[1, 2, 3],而不是[1,2,3]。 - 导入语句放文件顶部,每个 import 一行。
VS Code 装上 Python 扩展后,默认会用 autopep8 或 black 工具自动格式化,你只管写,保存时它帮你整理成 PEP 8 标准。
8. 字符编码
Python 3 源码默认就是 UTF-8 编码,所以代码里直接写中文完全没问题:
# Python 3 源码默认就是 UTF-8 编码
# 所以代码里直接写中文完全没问题
print("你好,世界")
# 输出: 你好,世界
# 如果用特殊编码,可以在文件第一行声明(很少用)
# -*- coding: utf-8 -*-这比 Python 2 时代省心多了(那时中文经常报 SyntaxError: Non-ASCII character)。
小结
这一章你了解了 Python 程序的整体骨架:用缩进表示代码块、用 # 写注释、知道了 35 个关键字的分组、记住了 PEP 8 风格规范。下一篇我们看 Python 的变量——怎么给数据"起名字"。
← 上一篇 Python 环境安装
下一篇 Python 变量 →