路飞学城-Python开发集训-第三章

第三章体会:这一次作业,没有看视频情况下,思路突然清晰,两个小时就做出来了,过程记录一下:
把用户的选择用列表list记录下来,选择就append(),返回就list[-1]=[],就把最后一个成员删掉,列表为空时也不会报错。
那么每次循环打印菜单呢,怎么解决呢,开始想的是新建一个字典dit等于menu,在打印菜单时,把打印的那一级赋值给dit,怎么赋值呢dit,应该是dic = menu[选择1][选择2]···,所就就用

dit = menu
for i in list:
      dit = dit[i]

所以问题解决,可是后来脑子抽筋,觉得dit发生变化了,menu也会跟着变,因为记得老师说他们只是引用变了,内存数据还在那里。觉得menu会变,到时再循环一次时,就不对了,当时也没测试,其实是可以正常用的,后来就想把存菜单的dit也变成list存,只存当时那个菜单:

list2 =[]
str = ""
for i in list:
      str+='["%s"]'%i #str最后就变成["选择1"]["选择2"]···

然后list2 = evnl("meun%s.keys()"%str)
就可以将要显示的key赋给list2了。完美解决。
后来看了视频,老师的办法也很好,应该有很多的办法,这一次憋的很爽,出结果的时候很有成就感。
下面是几种序列数据的总结,要用时,马上查,很方便


image.png

你可能感兴趣的:(路飞学城-Python开发集训-第三章)