python变量与赋值教学视频_图解Python变量与赋值

初学Python很多萌新表示对变量与赋值不理解,Python是一门独特的语言,与C语言有很大区别,学过C的都知道,给变量赋值时,需要先定义变量并指定类型,定义变量时会开辟一块内存区域,用于存储值,变量是该段内存区域的首地址。例如:

int a = 1;

a 就是整个内存空间中的一小块区域,就像是一个大房间里面的一个小盒子,赋值就是把整数1装载到该盒子里面。

现在给变量a重新赋值

a = 2;

盒子依然是那个盒子,也就是说内存地址没有变,内存的首地址还是那个,只是该段内存中的值变了,变成了2。

再来看:

int b = a;

54fdeb72e89b390da6608c8dcef39c2c.png

当把变量a赋值给另外一个变量b时,相当于把值拷贝了一份传递给变量b,b是新开辟的一段内存区域

而在Python中,“变量”的一种严格叫法是“名字(name)”,也可以理解为标签,就像我们人的姓名一样,名字就是挂在人身上的一个标签。

>>> 10-a

Traceback (most recent call last):

File "", line 1, in

NameError: name 'a' is not defined

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

在Python中,给变量赋值就是相当于给对象贴标签,就像我们给人取名字一样,变量本身是没有任何意义的,它没有类型信息,真正的信息都在对象身上,变量只有贴到了对象身上才变得有意义。

例如:

a = 1

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

然后执行

a=2

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

现在把名字a赋值给另外一个名字b

b = a

a848f92362a56ac9aa90b15317ab9d1a.png

相当于在刚才的2身上又贴了一个新的标签b,注意,这里有C是完全不一样的,这样我们既可以通过a来访问2也可以通过b来访问2,访问的都是同一个对象,就好比我们给宝宝取名时既有小名也有大名,其实叫的都是同一个人。

虽然我们通常在Python中还是用"变量"的叫法(因为在编程语言中这是一种通用叫法),但是我们需要理解Python中的变量不同于其他语言,变量只是一个名字,而不是内存空间。

函数值传递

def func_int(a): a += 4

def func_list(a_list): a_list[0] = 4

t = 0

http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html

https://my.oschina.net/leejun2005/blog/145911

Python中没有真正的变量,只有名字

学过C语言的都知道

先来看两个例子:

>>> a = [1, 2, 3]

>>> b = a

>>> a = [4, 5, 6] //赋新的值给 a

>>> a

[4, 5, 6]

>>> b

[1, 2, 3]

# a 的值改变后,b 并没有随着 a 变

>>> a = [1, 2, 3]

>>> b = a

>>> a[0], a[1], a[2] = 4, 5, 6 //改变原来 list 中的元素

>>> a

[4, 5, 6]

>>> b

[4, 5, 6]

# a 的值改变后,b 随着 a 变了

http://mp.weixin.qq.com/s/nkoIPL6EwIWekXJWTi9a0Q

http://mp.weixin.qq.com/s/Qbeyk2hncKDaz1iT54iwTA

http://mp.weixin.qq.com/s/Qbeyk2hncKDaz1iT54iwTA

关注公众号『Python之禅』(id:vttalk)获取最新文章

df426cb8aa90ead21ee002c8fb0bdfcd.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值