主要问题是在下面的for嵌套循环的地方,按我的理解代码运行出来不应该是那样的结果,但是我不明白它为何会运行出来那样的结果,代码如下:
unit=input('请输入单元号:')
floor=int(input('请输入楼层:'))
end_number=[]
first_room_info={}
while True:
room_end_input=input('请输入户室尾数:(01,02的形式):')
end_number.append(room_end_input)
room_number=int('1'+room_end_input)
direction=input('请输入房间朝向(南北输入1,东西输入2):')
area=input('请输入房间面积(单位平米):')
first_room_info[room_number]=[direction,area]
choice=input('是否输入下一个户室,y为继续输入,其他选择退出:')
if choice=='y':
pass
else:
break
room_info={}
next_room_info={}
room_info[1]=first_room_info
for a in range(2,floor+1):
for i in range(len(end_number)):
number=str(a)+end_number[i]
info=first_room_info[int('1'+end_number[i])]
next_room_info[number]=info
room_info[a]=next_room_info
print(next_room_info)
print(room_info)
当我输入相应的信息后,终端得到的结果如下:
注意标红线的地方,相当于在执行a为3的时候把已经保存在room_info字典里的数据用新得到的数据给替换了,但是我理解他这个for循环的嵌套不应该这么执行啊,应该是这样子的结果啊,如下图:
这样子的话才应该是我觉得合理的结果,希望能得到大佬的讲解,不胜感激!!!