python中的变量
定义
变量用于存储某个或某些特定的值,它与一个特定标识符相关联,该标识符称为变量名称。变量名指向存储在内存中的值。在创建变量时会在内存中开辟一个空间。
- 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建
- 等号 = (赋值操作符)用来给变量赋值
- = 左边是变量名(最好见名知意)
- = 右边是变量所指向的值
- 还可以多个变量同时赋值 变量1,变量2,变量3 = 值1,值2,值3
f = 1
a, b, c = 1, 1.5, "front"
print(a, b, c, f)
# 输出结果:1 1.5 front 1 能够分别得到变量对应的值
作用
- 使用变量名可以找到对应的值(要求命名见名知意)
- 可以通过变量改变值
- 变量使用前一定要定义,如果使用未定义的变量就会报错
# 例如定义一个人所包含的个人信息
name = "小明"
age = 18
height = "175cm"
weight = "65kg"
print(age) # 打印变量就会得到对应的值 输出为:18
age = 16 # 重新给变量age赋值(改变变量的值)
print(age) # 再次打印变量age的值已发生改变 输出为:16
# 当我们打印一个没有定义的变量就会报错
print(job)
---------------------------------------------------------------------------
NameError: name 'job' is not defined # 命名错误:名字‘job’没有定义
- 通过type()方法获变量存储数据的数据类型,变量的数据类型由变量的值决定
a = 5
b = "name"
print(type(a), type(b))
# 输出结果为:<class 'int'> <class 'str'>
# a变量的数据类型为int(整数类型),b的数据类型为str(字符串类型)
- 通过id()方法获取变量存储数据的内存地址
name = '小明'
print(id(name))
# 输出结果:1996687011312 变量的内存地址
变量的命名规范
- 变量名可由字母、数字和下划线组合而成
- 不能以数字开头
- 变量名区分大小写,尽量使用小写,如果有多个单词,单词间用下划线连接
- 不能与关键字重名,不能与内置模块重名
- 查看python中的关键字列表
# python中查看关键字
import keyword # 导入模块
keyword_list = keyword.kwlist # 用一个变量接收关键字列表
print(keyword_list) # 在控制台输出结果
# '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'
- python中的内置模块,例如 re/sys/time/random/os/unittest等等等
- 遵循驼峰命名法
- 大驼峰命名法:每个单词的第一个字母都大写,python中多用于类名
例如:FirstName /TestCase - 小驼峰命名法:第一个单词首字母小写,后面其他单词首字母大写,多用于变量(python中不推荐)
例如:firstName /testCase
- 当写出不符合规范的变量名编译器就会报错
# 例如
>>> 1a = 5
File "<stdin>", line 1
1a = 5
^
SyntaxError: invalid syntax
# 但我们把python的内置方法模块定位为一个变量,那么这个方法模块在当前有效作用范围内不可使用原有的功能
# 在python IDLE中我们可以使用del方法,del 变量名 就可以删除该变量。在编辑器中就直接删除这个变量,
>>> print = 4
>>> print(print)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
Python中的标识符
规范
- 定义的变量名,类名,函数名等
- 和变量一样,需要见名知意(提高代码可读性)
- 可以由字母,下划线和数字组成
- 不能以数字开头
- 不能与关键字重名
- 不要与内置函数或类重名,会覆盖原始内置函数的功能
- 每个单词尽量使用小写,单词间用_连接(建议)
在Python中,下划线开头的标识符有特殊含义
- 以单下划线开头的标识符(如 _getName),表示为保护成员,不能直接访问,无法通过 from…import* 的方式导入,只允许类本身或者子类调用
- 以双下划线开头的标识符(如__getage)表示类的私有成员,只能是允许这个类本身进行访问了。连子类也不可以
- 以双下划线作为开头和结尾的标识符(如 init),是专用标识符,如 init()代表类的构造函数