本帖最后由 铁棍阿童木 于 2018-1-5 09:29 编辑
记住一点就行了,Python的变量名就是一个标签,哪里需要就去哪里!
temp = input("请输入密码:") # 这个时候变量名 temp 指向你第一次输入的值;
进入循环后 >>>
temp = input("请重新输入密码:") # 这个时候变量名 temp 就指向了你第二次、第三次.....第N次输入的值(直到循环结束),temp 只会指向最后一次赋予的值。
在整个程序运行过程中曾经赋予变量名 temp 的值因为没有其他标签指向它,所以都会被Python的垃圾回收机制处理了。
按照以上所诉,就不难理解你提到的小练习了。
练习1.
>>> myteacher = "小甲鱼" # 在这里,把变量名 myteacher 指向了字符串 “小甲鱼”;
>>> yourteacher = myteacher # 接着又将变量名 yourteacher 指向了变量 myteacher 的值(可以理解为字符串 “小甲鱼”现在有两个标签 myteacher 和 yourteacher)
>>> yourteacher = "黑夜" # 紧接着又把变量名 yourteacher 指向了字符串 “黑夜”;
所以:
>>> print(myteacher) # 结果就是“小甲鱼”(因为变量名 myteacher 仍然指向字符串“小甲鱼”)
练习2.就应该不难理解了。第二步过后,变量名 yourteacher 和 myteacher 同时指向字符串“小甲鱼”;
然后,把变量名 myteacher 指向了一个新的字符串 “黑夜”;
最后打印变量 yourteacher 的值,当然还是原来的“小甲鱼”啊,自始自终她都没变过。