一、 变量
对象储存在内存中,变量是指向对象的门牌号。Python的对象类型有:
注:函数名为内存地址,加小括号便可引用内存中的对象。
Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Sets(集合)
Dictionary(字典)
File(文件)
其他类型(类型、none,布尔型)
编程单元类型(函数,模块,类)
与实现相关的类型(编译的代码堆栈)
注:通过type()可以查看数据类型。
(一)变量定义的规则
变量名只能是字母、数字或下划线的任意组合。
变量名的第一个字符不能是数字,并且变量名不能有空字符。
以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
(二)变量的赋值
由于在Python3中的变量不需要声明,所以变量都必须通过’=’用来给变量赋值。
1.单变量赋值
a=1
b="HeYaliu"
c=["He","Ya","liu"]
d=("He","Ya","liu")
e={"He","Ya","liu"}
f={"name":"HeYaliu","age":16}
print("a=%d,b=%s,c=%s,d=%s,e=%s,f=%s"%(a,b,c,d,e,f))
#a=1,b=HeYaliu,c=['He', 'Ya', 'liu'], d=('He', 'Ya', 'liu'),e={'He', 'Ya', 'liu'}, f={'name': 'HeYaliu', 'age': 16}
2.多变量赋值。
(1)将多个变量指向相同的内存空间.
a=b=c=0
print ("a=%d,b=%d,c=%d"%(a,b,c))
#a=0,b=0,c=0
(2)将多个变量指向不同的内存空间
a,b,c=1,"HeYaliu",["He","Ya","liu"]
print ("a=%d,b=%s,c=%s"%(a,b,c))
#a=1,b=HeYaliu,c=['He', 'Ya', liu']
(三)变量的作用域
在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
1.一般来说全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
a=2
b=[1,2,2]
c=3
print(a,b,c)
def var():
a=1 #数字与字符串局部变量的作用域只在def中
b=[1,2,3] #列表,字典,集合,类的局部变量可以改全局变量
global c #变量名前加上global,可以改全局变量,但不能这样做
c=4
print(a,b,c)
var()
print(a,b,c)
2 [1, 2, 2] 3
1 [1, 2, 3] 4
2 [1, 2, 2] 4
2.当全局变量与局部变量同名时,在定义局部变量的子程序内局部变量起作用;在其它地方全局变量起作用。