wulanzhongxue 发表于 2019-7-18 10:56:02

为什么这两个输出的内容一样呢?


myteacher = '小甲鱼'
yourteacher = myteacher
yourteacher = '黑夜'
print(myteacher)


myteacher = '小甲鱼'
yourteacher = myteacher
myteacher = '黑夜'
print(yourteacher)

新手·ing 发表于 2019-7-18 11:55:30

无论是上面这个程序还是下面这个,
他们的第三行,都是对之前没有影响的,
他们的第三行只是名字重复了,在内存中把这个变量原来的值顶替了,然而并不影响第二行院线赋好的值。

可以连接下id()函数。

MMM啊 发表于 2019-7-18 14:42:36

重复赋值只会显示最后一次的名字,前面的名字会被覆盖掉

JesseMccree 发表于 2019-7-19 21:50:53

myteacher = '小甲鱼'                     #第一步, “小甲鱼”赋值给了myteacher
yourteacher = myteacher                   #第二步, myteacher中的值赋给了yourteacher   =>过程即为 yourteacher ←myteacher←"小甲鱼"
yourteacher = '黑夜'                           #第三步, yourteacher中的值发生了变化,之前存储在yourteacher中的"小甲鱼"变成了"黑夜"
print(myteacher)                           #print打印的是myteacher,就是第二步中的字符串中的值,即为”小甲鱼”


myteacher = '小甲鱼'                        #这三个变量之间的转换与上面的类似,第一步,将“小甲鱼”这个值赋给myteacher
yourteacher = myteacher                #第二步,myteacher中的值赋给了myteacher,即“小甲鱼”,这是变量之间的转化,跟字符串的赋值有区别
myteacher = '黑夜'                        #第三步,myteacher中的值发生了变化,现在变成了"黑夜”
print(yourteacher)                        #print打印的是yourteacher,即第二步,所以会显示"小甲鱼"这个结果

在python中程序的运行是自上而下自左向右的
希望对你有帮助
页: [1]
查看完整版本: 为什么这两个输出的内容一样呢?