函数y=kx+b中,x为自变量,y为因变量,b为常数。x,y之所以叫变量,是因为它们的值是可以发生变化的,b是不会发生变化的。Python中的变量和常量也是类似的道理。
常量是指程序运行过程中值不能发生变化的量。数字类型和字符串类型属于常量,bool类型的True和False也是常量。
3 #数字常量
'hello' #字符串常量
上例中的3和’hello’ 是不能发生改变的,比如3变成3.1,就是另外的数字了。像这样不能发生变化的量就是常量。
变量是指程序运行过程中值能发生变化的量。
'''
a是一个变量,它的值可以从10变成20
'''
a=10
a=20
格式:变量名=变量值
其中“=”在Python中称为赋值运算符(不是等于号),它的作用是将它右边的值赋给左边的变量。
a = 20 #将数值20赋给变量a
当有赋值操作时,Python解释器会在内存空间(堆内存)中申请一块地方存放该变量值,并且会在内存空间(栈内存)中申请一块地方存放该变量名。再将变量名和变量值的内存地址做一个绑定(不是双向唯一性,而是一对多。一个变量值可以被多个变量名引用,一个变量名只能绑定一个内存地址)。
简而言之,变量就是数据内存地址的别名。使用变量就可以使用这个数据,这个就是引用。
例如:
name = 'Ross'
在上例中,变量值“Ross”的内存地址为0xFFFF01,变量name是“Ross”的内存地址0xFFFF01的别名。赋值的本质实际就是将“=”右边的值的地址赋给左边的变量。
例如:
a = 20 #赋值之后,20的内存地址存储在变量a当中
print('变量a的内存地址:',id(a))
print('20的内存地址:',id(20))
输出:
变量a的内存地址: 1755800142672
20的内存地址: 1755800142672
从输出可以看到,a就是地址1755800142672的别名,赋值之后,变量a就是20的内存地址别名,所以通过变量a就可以找到数值20。
标识符
标识符是标识事物的符号
如:在下图中,ORANGE,APPLE就是标识符。所以标识符通俗点讲就是名字。
标识符的组成规则
标识符既然是名字,那么在起名字的时候肯定也是要遵循一定的“风俗”的,不能乱起名。标识符要遵循的规则如下:
1.标识符只能是字母(大小写字母)、数字、下划线这三种符号的任意组合
2.标识符不能以数字开头
3.标识符不能和关键字相同
例如:
_hello #正确
____hel #正确
hel___ #正确
he12_ #正确
h_12 #正确
12h #不正确,不能以数字开头
12_h #不正确,不能以数字开头
if #不正确,不能和关键字相同
Python中的关键字就是指一些具有特殊功能的标识符。
比如if关键字具有判断功能:
if 3>2:
print("Yes")
else:
print("No")
可以通过以下方式查看Python中的关键字:
import keyword
print(keyword.kwlist)
输出:
['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']
变量名
变量名即变量的名字。
变量名也是名字,属于标识符,所以给变量起名字的时候也要遵循标识符的规则。
如:
age = 18 #age是一个变量,该变量的名字就是age,age就是变量名