图解Python变量与赋值

2022-12-17 0 931

原副标题:要量Python表达式与表达式

零此基础python入门教程:python666.cn

我们好,热烈欢迎走进 Crossin的程式设计课室 !

Python是两门独有的词汇,与C词汇有非常大差别,算数Python很多萌新则表示对表达式与表达式不认知,段小宇C的都晓得,给表达式表达式时,须要先选定正则表达式,与此同时会开拓几块缓存地区,用作储存值,比如:

inta = 1;

图解Python变量与赋值

a 是缓存空间中的一小片地区,就像两个大卧室里头的两个小盒子,表达式是把有理数1运载到箱子里头。

那时给表达式a再次表达式

a = 2;

图解Python变量与赋值

箱子仍然是这个箱子,也是说缓存地址没变,而已此段缓存中的值变了,变为了2。

再上看:

intb = a;

图解Python变量与赋值

当把表达式a表达式给除此之外两个表达式b时,相等于把值复本了这份传达给表达式b,b是新开拓的几段缓存地区

而在Python中,“表达式”的严格叫法是“名字(name)”,也可以认知为标签,就像我们人的姓名一样,名字是挂在人身上的两个标签。

>>>10-a

Traceback (most recent call last):

File “<stdin>”, line 1, in<module>

NameError: name aisnotdefined

比如上面这段错误报的是name ‘a’ 没定义,而没说成 variable。

在Python中,给表达式表达式是相等于给对象贴标签,就像我们给人取名字一样,表达式本身是没任何意义的,它没类型信息,真正的信息都在对象身上。

比如:

a = 1

图解Python变量与赋值

Python内部首先会分配几段缓存空间用作创建有理数对象1,然后给这个1贴上名为a的标签。

然后执行

a= 2

Python接着会在另几块缓存地区创建有理数对象2,然后把标签a从1身上撕下来贴在2身上,此时,我们没法再通过a来得到1这个值了。

图解Python变量与赋值

那时把名字a表达式给除此之外两个名字b

b = a

相等于在刚才的2身上又贴了两个新的标签b,注意,这里和C词汇是完全不一样的,定义b的时候不须要分配缓存空间,这样我们既可以通过a来访问2也可以通过b来访问2,访问的都是同两个对象,就好比我们给宝宝取名时既有小名也有大名,其实叫的都是同两个人。

虽然我们通常在Python中还是用”表达式”的叫法(因为在程式设计词汇中这是一种通用叫法),但是我们须要认知Python中的表达式不同于其他词汇,表达式而已两个名字。

认知了Python中的表达式与表达式后,再上看函数的参数传达,如下所示:

>>> deffun_a(a):

a = a+ 4

>>> g = 0

>>> fun_a(g)

>>> g

0

全局表达式g传达给函数fun_a时,相等于函数中的参数a也将作为标签贴在0上,随后a被再次表达式了(a=a+4),相等于从0撕下标签a贴到4身上,然后g仍然还是0上面的标签。

图解Python变量与赋值

再上看这个函数,传达的是两个列表对象

>>> deffun_b(names):

names[ 0] = [ x, y]

>>> n_list = [ a, b, c]

>>>fun_b(n_list)

>>>

>>> n_list

[[ x, y], b, c]

与前面的步骤还是一样的,names 和 n_list 都是[‘a’,’b’,’c’]上的两个标签,而已列表中的第0个元素被再次表达式了,但是names和 n_list 仍然都贴在这个列表对象身上,虽然 n_list的值更新了,但对象仍然是原来这个对象。就好比张三和小张都是同两个人,那时给小张换件衣服时,其实是给张三换件衣服,人还是这个人,而已他身上的东西发生了变化。

图解Python变量与赋值

作者: 刘志军

感谢转发点赞的各位~

__

我们一直谈论“写代码”,但你会“读代码”吗?

如需了解 付费精品课程教学 答疑服务

请在 Crossin的程式设计课室666

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务