本文最后更新于 2024-12-17,文章内容可能已经过时。

Python基础语法

学习目标

掌握Python代码格式与风格

掌握Python标识符与关键字

掌握Python常量、变量

掌握解释器命名空间

熟悉内置函数、类与对象的概念以及应用

熟悉模块与文件对象的概念及应用

BG1-代码格式

缩进

“缩进”一般确定了Python代码之间的逻辑关系与层次关系,使用Tab键,或空格键控制缩进,见1-1Python的缩进。

Pythoncode1
    Pythoncode2
        Pythoncode3

1-1Python的缩进

代码缩进量不同改变代码语义,Python中同一代码块要求使用同样缩进量,见程序段1-2 if-else语句。

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

程序段1-2 if-else语句

换行

Python官方建议每行代码不超过79个字符,若代码过长应该换行。Python中会将圆括号、方括号、和花括号中的行进行隐式链接,见程序段1-3Python行隐式链接。

print(['Hello',
'world'])
# 输出结果
['Hello', 'world']

程序段1-3Python行隐式链接

注释

单行注释

单行注释常以#开头,可作为单独一行放置在被注释代码之上,也可放置在被注释代码之后,见程序段1-4单行注释

# 使用print输出字符串你好
print("你好")
print("你好") # 使用print输出字符串你好

程序段1-4单行注释

多行注释

多行注释使用连续3个单引号‘’‘或者连续3个双引号“”“,可注释程序中的多行,也可注释一行,通常用来为Python文件、模块、类或函数等添加版权或者功能描述信息,见 程序段1-5多行注释。

'''这是单引号多行注释'''
"""这是双引号多行注释"""
'''
这是单引号多行注释
这是单引号多行注释
'''
"""
这是双引号多行注释
这是双引号多行注释
"""

程序段1-5多行注释

BG2-标识符与关键字

标识符

标识符就是对变量、常量、函数、类等对象起的名字,命名规则见图2-1。

  • 由字符、数字、下划线组成。
  • 不能以数字开头。
  • 区分字母大小写。
  • 以下划线开头的标识符拥有特殊意义。
  • 不允许使用Python预定义标识符名,即不能使用关键字作为自定义标识符名。

图2-1 Python标识符命名规则

在python中,建议按照以下方式命名标识符。

(1)见名知意:name表示姓名;student表示学生。

(2)命名规范:常量名应使用大写的单个单词或者由下划线链接的多个单词命名-NAME_NAME;模块名、函数名应该使用小写的单个单词或由下划线连接的多个单词命名-low_with_under;类名应使用以大写字母开头的单个或者多个单词命名-Cat、CapWorld。

关键字

关键字是Python编程语言预定义的保留字。Python共定义35个关键字,见程序段2-2Python预定义标识符。

import keyword # 导入keyword模块
print(keyword.kwlist)
# 输出结果
['False', 'None', 'True', '__peg_parser__', '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']

程序段2-2Python3关键字

通过“help”可查看关键字声明,见表2-2Python3关键字

关键字 含义
True/False 逻辑真/假
None 空值
and/or/not 逻辑与、或、非运算符
as 在 import、except 或 with 语句中给对象起别名
assert 断言,用来确认某个条件必须满足,帮助调试程序
async 定义协程
await 用于挂起阻塞的过程
break 用在循环结构中,结束 break 所在层次的循环
class 定义类
continue 用在循环结构中,结束本次循环
def 定义函数
del 删除对象或其成员
elif 用在选择结构中,是 else if 的缩写
except 用在异常处理结构中,捕获指定类型的异常
else 用在选择结构、循环结构或异常处理结构中
finally 用在异常处理结构中,表示无论是否发生异常都会执行后面的代码
for for 循环
from 指明从哪个模块中导入什么对象,还可以与 yield 构成表达式
global 定义或声明全局变量
if 用在选择结构中,对条件进行判断
import 导入模块或模块中的对象
in 成员测试
is 同一性测试
lambda 定义小型匿名函数
nonlocal 声明外部嵌套函数引用的对象不是局部变量,而是更外层函数的变量
not 逻辑非运算符
or 逻辑或运算符
pass 占位语句,不做任何操作
raise 引发异常
return 结束函数,并可返回一个值
try 定义异常处理的范围,可以嵌套
while while 循环
with 运行完一段代码后自动清理资源
yield 生成器函数,用于生成一系列结果而不是单个返回值

表2-2Python3关键字

BG3-变量与常量

变量

变量是对内存单元数据、对象的引用,Python使用‘=’作为赋值运算符进行直接赋值,见程序段3-1

x=1 # 定义变量x并赋值1

程序段3-1变量赋值

以上代码定义的变量与内存数据之间的关系,见图3-1

图片绘制中

图3-1 变量与内存数据之间的关系

Python支持链式赋值,见程序段3-2

x=y=z=1 # 给x、y、z同时赋值为1

程序段3-2 Python链式赋值

Python支持解包赋值,即组合数据类型解包为相应数量变量赋值,见程序段3-3

x,y,z=1,2,3 # 1赋值给/ 2赋值y/ 3赋值z
x,y=y,x # y赋值给x/ x赋值给y

程序段3-3 Python解包赋值

常量

程序运行期间用到不可变的数据,Python使用标识符来标识数据不可变的内存单元。

Python已有常用内置常量:True(真)、False(假)、None(空值);也可自定义常量。