Python--常量和变量

  • <font color=blue>引例
  • <font color=blue>一、常量
  • <font color=blue>二、变量
  • <font color=blue>1.定义
  • <font color=blue>2.变量的赋值
  • <font color=blue>3.变量和变量值的关系
  • <font color=blue>4.标识符、变量名、关键字


引例

函数y=kx+b中,x为自变量,y为因变量,b为常数。x,y之所以叫变量,是因为它们的值是可以发生变化的,b是不会发生变化的。Python中的变量和常量也是类似的道理。

一、常量

常量是指程序运行过程中值不能发生变化的量。数字类型和字符串类型属于常量,bool类型的True和False也是常量。

3 #数字常量
'hello' #字符串常量

上例中的3和’hello’ 是不能发生改变的,比如3变成3.1,就是另外的数字了。像这样不能发生变化的量就是常量。

二、变量

1.定义

变量是指程序运行过程中值能发生变化的量。

'''
a是一个变量,它的值可以从10变成20
'''
a=10
a=20

2.变量的赋值

格式:变量名=变量值
其中“=”在Python中称为赋值运算符(不是等于号),它的作用是将它右边的值赋给左边的变量。

a = 20 #将数值20赋给变量a

3.变量和变量值的关系

当有赋值操作时,Python解释器会在内存空间(堆内存)中申请一块地方存放该变量值,并且会在内存空间(栈内存)中申请一块地方存放该变量名。再将变量名和变量值的内存地址做一个绑定(不是双向唯一性,而是一对多。一个变量值可以被多个变量名引用,一个变量名只能绑定一个内存地址)。

简而言之,变量就是数据内存地址的别名。使用变量就可以使用这个数据,这个就是引用。

例如:

name = 'Ross'

python常量类 python常量包括_python常量类


在上例中,变量值“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。

4.标识符、变量名、关键字

标识符

标识符是标识事物的符号

如:在下图中,ORANGE,APPLE就是标识符。所以标识符通俗点讲就是名字。

python常量类 python常量包括_内存地址_02

标识符的组成规则

标识符既然是名字,那么在起名字的时候肯定也是要遵循一定的“风俗”的,不能乱起名。标识符要遵循的规则如下:

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就是变量名