https://www.jianshu.com/p/0bd0816c5bd8
一、 变量的声明
python语言是动态语言
-
变量不需要事先声明
-
变量的类型不需要声明
-
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的 类型
是变量所指的内存中值的类型。
变量名和变量值之间使用等号进行连接 =
等号左边成为 变量名
等号右边成为 变量的值
a = 1
a = '千锋'
二、 变量命名规则:
可以包含以下字符的组合
-
大小写字母(a-z,A-Z)
-
变量名区分大小写;
name
和Name
是不同的变量 -
数字(0-9)
-
下划线(_)
但是变量名称不可以 以数字开头。
错误示例:192_net
正确示例:net_192
三、 变量命名潜规则:
- 基础知识没整明白之前,不要以单下划线和双下划线开头;如:
_user
或__user
- 变量命名要易读;如:使用
user_name
,而不是username
- 不用使用标准库中(内置)的模块名或者第三方的模块名
- 不要用这些 Python 内置的关键字:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', '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 中的变量
在 python 中究竟该如何正确理解变量的赋值过程呢?
比如:
s = 'hello'
以上的变量赋值,应该说成把变量名 s
分配给字符串对象 hello
更合理。
hello
这个字符串对象会在内存中先被创建,之后再把变量名 s
分配给这个对象。
所以要理解 Python 中的变量赋值,应该始终先看
等号右边
。
等号右边的对象先被创建或者被获取
,在此之后左边的变量名才会被分配给hello
这个对象,这就像为对象贴上了标签。
变量名本质上可以说是 一个对象的标签 或者说是 对象的名字。
既然是标签/名字,那一个对象就可以有多个标签或者名字
。
比如: 张三 和 小张 指的都是同一个人
请看下面的代码示例:
a = 1
b = a
a = 2
print(b) # b 会是 ?
a = 1
时如下图:
b = a
时如下图:
a = 2
时如下图:
上面的 b = a
我们称它为 传递引用,此时对象会拥有两个名称(标签) ,分别是 a
和 b
。
这种变量的赋值方式也称为引用赋值。
五、变量的多元赋值
在 Python3 中你可以这样给变量赋值
In [2]: x, y, z = 1, 2, 3
In [3]: x
Out[3]: 1
In [4]: y
Out[4]: 2
In [5]: z
Out[5]: 3
当然也可以这样
In [10]: a, b, c = 'abc'
In [11]: a
Out[11]: 'a'
In [12]: b
Out[12]: 'b'
In [13]: c
Out[13]: 'c'
假如你需要对一个序列类型中的数据进行一一解开赋值,那就需要等号左边的变量名和序列类型数据中的元素个数相同。
这种多元赋值方式在 Python 中也可以称为元组解包。
六、Python 中对象(变量的值)都有三个特性
# 唯一标识,是对象在内存中的整数表示形式,在 CPython 中可以理解为# 内存地址
# 可以用 id 这个函数查看
id(10) # 直接给一个对象
n = 10
id(n) # 也可以是一个已经赋值过的变量名
# 类型, 对象都有不同的类型,用 type 这个函数查看
type(10) # int 整型
type(n)
# 值,对象本身
10
网友评论