变量及其赋值#
在编程时经常要处理数据,如数字、字符串等,既可以直接使用这些数据,也可以把数据保存在变量中,以方便以后使用。
- 变量(variable)
- 存放数据值的容器。数据是存放在内存中的,变量相当于这块内存的名字。变量名用标识符表示。
- 标识符(identifier)
- 编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。
在 Python 中,通过直接赋值即可创建各种类型的变量(Python 是动态类型语言,不像其他静态类型语言那样需要预先显式声明变量名及其类型),使用等号 = 给变量赋值。如下所示:
x = 33 # x 是一个整型变量
print(x, type(x)) # 33 <class 'int'>
url = "https://zimo.net/aqmn/" # url 是一个字符串变量
print(url, type(url)) # https://zimo.net/aqmn/ <class 'str'>
is_ready = True
print(is_ready, type(is_ready)) # True <class 'bool'>
上例中,type() 是内置的函数,用于返回变量类型。
一个变量可以被重新赋予不同类型的值(动态类型语言的特点):
x = 33 # x 是一个整型变量
x = False # x 现在变为一个布尔类型变量
可以同时给多个变量赋值:
# 多变量赋值
tomato, pumpkin, pepper = '西红柿', '南瓜', '辣椒'
print(tomato, pumpkin, pepper) # 西红柿 南瓜 辣椒
# 链式赋值,三者指向内存中的同一对象
a = b = c = 33
print(a, b, c) # 33 33 33
变量值互换:
x, y = 33, 44
# 常规方法
temp = x
x = y
y = temp
print(x, y)
# 利用多变量赋值快速交换两个变量的值
x, y = y, x
print(x, y)
变量的命名#
首先,变量名必须是一个合法的标识符,这要求(必须遵守):
- 只能包含字母(A‐Z 和 a-z)、数字(0-9)和下划线
_;(Python 3.x 中变量名支持统一码 Unicode,因此可以使用更多的字符,如可以包含汉字,但不建议使用汉字) - 不能以数字开头;
- 不能包含空格;(一般使用下划线来分隔其中的单词)
- 不能使用保留字;(见下页)
注意标识符是区分大小写的,因此 age、Age 和 AGE 是三个不同的标识符。
保留字在 Python 中也称关键字,是被编程语言内部定义并保留使用的标识符,在编程时不能定义与保留字相同的标识符。目前 Python 中有 35 个保留字:
False await else import pass
None break except in raise
True class finally is return
and continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yield
Python 的变量命名习惯:
- 仅使用 ASCII 字母(A‐Z 和 a-z)、数字(0-9)和下划线
_,不要使用中文,也不要使用拼音; - 变量名应既简短又具有描述性;
- 不要和作用域内的其他函数(包括 Python 内部函数)重名;
- 使用蛇形命名法(snake_case):所有单词皆小写,单词之间以下划线
_分割。
请判断下面变量名称是否合法,以及是否符合习惯用法:
| 变量名 | 评价 | 变量名 | 评价 |
|---|---|---|---|
if |
不合法:为保留字 | Age |
合法:但不是全小写 |
user_age |
合法:很好 | 2nd_member |
不合法:以数字开头 |
True |
不合法:为保留字 | 小老鼠 |
合法:但包含非 ASCII 字符 |
input |
合法:但和函数同名 | xiaolaoshu |
合法:但最好不要用拼音 |
d |
合法:但太短,意义不明 | i |
合法:在循环中习惯用此变量 |
StudentID |
合法:但不是蛇形命名法 | sum |
合法:很好 |
$diff |
不合法:包含特殊字符 | point1 |
合法:很好 |
small-cat |
不合法:包含特殊字符 | _num |
合法:仅在某些场合下这样用 |