在 Python 中,a = 10 这类赋值语句为数据绑定名称(变量),以便在后续表达式中反复引用。名称须符合标识符规则;所谓常量并无专用关键字保护,通常以全大写命名作为约定。直接写在源码中的固定取值(如 10、"hi"、True、0b1010)称为字面量。本节说明赋值与多重赋值、常量约定、命名规则及常见字面量形式。
变量与赋值
变量可理解为指向对象的名称;重新赋值时,名称可绑定到新对象,类型也可随之改变。Python 不必事先声明类型,解释器根据赋值右侧的值推断类型:
number = 10
print(number) # 10
number = 1.1 # 重新赋值,类型也跟着变
print(number) # 1.1多重赋值与解包
右侧为逗号分隔的多个值时,可一次解包赋给多个名称;若多个名称需绑定同一初值,可连续使用等号:
a, b, c = 5, 3.2, "Hello" # 元组解包
print(a, b, c) # 5 3.2 Hello
x = y = z = "same" # 同一对象绑定到三个名称
print(x, y, z) # same same same常量的命名约定
Python 没有不可变赋值的常量关键字。习惯上将不宜改动的量放在独立模块(.py 文件)中,用全大写加下划线命名,以提醒阅读者与维护者:
# constant.py
PI = 3.14
GRAVITY = 9.8# main.py
import constant
print(constant.PI) # 3.14
print(constant.GRAVITY) # 9.8上述约定仅属风格与协作规范,解释器仍允许对 PI 等名称重新赋值,约束需由代码审查与测试保证。
命名规则
- 名称由字母、数字、下划线组成,且不能以数字开头。
- 不得使用
if、for、class等保留关键字。 - 不得包含
!、@、#、$、%等特殊符号。 - 普通变量宜采用 snake_case(小写加下划线),如
my_name、current_salary。 - 常量宜采用全大写,如
SPEED_OF_LIGHT。 - 名称应能表达含义:
vowel通常比单字母v更易读。
字面量(Literal)
字面量是源码中直接写出的数据。整数除十进制外,可用 0b、0o、0x 前缀表示二进制、八进制、十六进制;浮点可用科学计数法;复数虚部以 j 或 J 结尾:
a = 0b1010 # 二进制,值为 10
b = 100 # 十进制
c = 0o310 # 八进制,值为 200
d = 0x12c # 十六进制,值为 300
float_1 = 10.5 # 浮点
float_2 = 1.5e2 # 科学计数法,值为 150.0
x = 3.14j # 复数
print(a, b, c, d) # 10 100 200 300(按十进制打印)
print(float_1, float_2) # 10.5 150.0
print(x, x.imag, x.real) # 3.14j 3.14 0.0字符串与布尔字面量
字符串可用单引号、双引号或三引号书写。True、False 为布尔字面量;在算术表达式中 True 当作 1、False 当作 0(一般不推荐依赖此行为):
strings = "This is Python"
char = 'C'
multiline = """跨越多行的
字符串"""
a = True + 4 # 5
b = False + 10 # 10
print(a, b) # 5 10None 与集合字面量
None 表示尚无具体值,常用于占位或表示缺失。列表、元组、字典、集合均有对应的字面量写法:
food = None
print(food) # Nonefruits = ["apple", "mango", "orange"] # 列表
numbers = (1, 2, 3) # 元组
alphabets = {'a': 'apple', 'b': 'ball'} # 字典
vowels = {'a', 'e', 'i', 'o', 'u'} # 集合常见误区
- 使用保留字作变量名(如
class = 1)将导致语法错误。 - 以数字开头命名(如
1st_name)无效。 - 误以为全大写名称不可修改:解释器不会阻止对常量风格名称重新赋值。
本节说明了 Python 中变量的含义、赋值方式、命名约定与字面量形式。下一节介绍数据类型:内置类型、type() 与类型转换。