有个疑问,
Topic source我觉得是for循环的过程就是不断给变量赋值的过程,将变量name不断的赋值为列表中的值,当你循环运行结束后,变量name的值就赋值为了循环结束时的赋值,也就是jack。 所以你print变量name就是jack。 至于你print(name[0])得出的结果是j是因为python把字符串本身就看成是一个列表。我看书上貌似是有这么说过,不知道是不是这个道理,你可以往这个方向上查查资料。
个人觉得这是一变量链接的问题,从你的代码中看出,你首先创建了一名为name的list,与此同时,在for...in...循环中同样存在name变量,此时的name变量并非由内存再次创建,而就是前面的name变量,也就是说,代码全过程只用到这一个name变量,区别在于for...in...循环中变换了name的链接,由链接到list变换到链接至list中的一个元素,直至for...in...循环的终止,name链接到list中的最后一个元素。因而,print(name)是对应的是Jack,而在print(name[0])中,name所链接到Jack作为字符组构成list,因而输出Jack的第一个元素J。
- 1
丁瑞同学
我发现这样竟然也可以,输出结果为
想问下Python是怎么分辨name的。为什么最后输出name的值是jack,而不是['micheal','bob','jack']