? ?变量是用来存储值的所在处,变量具有名字以及数据类型两种属性。数据类型决定了内容中不同类型的值的存储结构。变量名用来调用变量。
? ?Python 是动态类型语言,所以说不需要预先声明变量类型就可以直接使用。变量的类型和值是在赋值时决定的。
一、变量的命名规范
1、只能使用大、小写字母或者下划线开头;
2、除开头部分外,可以是大、小写字母、数字或者下划线的随意组合;
3、不能占用python关键字;
4、变量名严格区分大小写。
查看python关键字:
import?keyword
keyword.kwlist()
['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']
二、变量的命名规范
规则是必须的,规范不是必要的,但是它是墨守成规的。
1、一般情况不以下划线开头
以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
2、不能与内置函数或者模块重名,这样虽然不会报错,但是会使原有的函数失去意义。
例如:
把sum作为变量名,而sum是python内置的求和函数。
list1=[1,2,3,4,5]
sum(list1)
15
sum=1
sum(list1)
Traceback?(most?recent?call?last):
??Python?Shell,?prompt?107,?line?1
TypeError:?'int'?object?is?not?callable
当我把sum赋值为1后,在用sum求list1的和,就会引发异常,因为此时sum是1了,而不再是一个函数
三、变量的赋值
1、普通赋值
变量通过等号来赋值
count=10
2、自增赋值
count = count + 1
也可以写成
count += 1
3、多元赋值
x,y,z=1,2,3
print?x,y,z
1?2?3
此时的1,2,3实际上是个无关闭分割符的元组,等于(1,2,3)
当变量名多于变量值时:
x,y=12
Traceback?(most?recent?call?last):
??Python?Shell,?prompt?110,?line?1
TypeError:?'int'?object?is?not?iterable
异常:int不是可迭代对象
然后将int换成str
x,y="12"
print?x,y
1?2
当可迭代的值也小于变量名时:
x,y="1"
Traceback?(most?recent?call?last):
??Python?Shell,?prompt?118,?line?1
ValueError:?need?more?than?1?value?to?unpack
异常:需要多于一个值去解包
当变量名少于变量值时:
x,y=1,2,3
Traceback?(most?recent?call?last):
??Python?Shell,?prompt?116,?line?1
ValueError:?too?many?values?to?unpack
x,y="123"
Traceback?(most?recent?call?last):
??Python?Shell,?prompt?117,?line?1
ValueError:?too?many?values?to?unpack
异常:太多的值需要解包
关于解包的知识在函数传参的内容中会详细讲解