变量不用定义就能使用, 但是在使用某个变量之前要明确给这个变量一个值
代码示例:
name = 'Tom'
print(name)
结果:
Tom
变量由三部分组成:
标识: 表示对象所存储的内存地址, 使用内置函数 id(obj) 来获取
类型: 表示的是对象的数据类型, 使用内置函数 type(obj) 来获取
值: 表示对象所存储的具体数据, 使用 print(obj) 可以将值进行打印输出
代码示例:
name = 'Tom'
print('标识:', id(name))
print('类型:', type(name))
print('值:', name)
结果:
标识: 2862007583216
类型:
值: Tom
多次赋值后变量会指向新的空间
代码示例:
name = 'Bob'
print('标识:', id(name))
print('类型:', type(name))
print('值:', name)
结果:
标识: 2862007583152
类型:
值: Bob
原来 Tom 占用的内存没有变量使用, 成为垃圾内存, 由 Python 的垃圾回收机制进行回收
代码示例:
print('标识:', id('令狐冲'))
print('类型:', type('令狐冲'))
print('值:', '令狐冲')
结果:
标识: 2862007652496
类型:
值: 令狐冲
分为全局变量和局部变量
局部变量: 在函数内定义并使用的变量, 只在函数内部有效, 局部变量如果用 global 声明, 那么这个变量就变成了全局变量
全局变量: 函数体外定义的变量, 可作用于函数内
def fun(a, b):
c = a + b
return c
# 函数形参 a 和 b 和函数体内定义的变量 c 都是局部变量
age = 10 # 全局变量
print(age) # 函数体外使用全局变量
def fun2():
print(age) # 函数体内使用全局变量
fun2()
def fun3():
global name
name = 'Tom'
fun3()
print(name) # 这里需要先执行一下 fun3(), 否则 name 没有值, 输出会报错
结果:
10
10
Tom