ancera 发表于 2022-5-17 17:11:52

关于代码怎么都传不到字典里面

while 1:
    con = dict()
    n = int(input('请输入指令代码:'))
    if n == 1:
      name = input('请输入该联系人姓名:')
      if namein con:
            print(name + ':' + con)
      else:
            print('未能找到该联系人,下次请输入2保存该联系人')         
    if n == 2:
      name = input('请输入该联系人姓名:')
      if name in con:
            print('该用户已经存在---->>',end = ' ')
            print(name + ':' + con)
            ask = input('是否修改用户资料(yes/no):')
            if ask == 'yes':
                con = input('请输入该联系人的电话号码:')            
            else:
                print('好的,未修改')
       else:
            con= input('请输入该联系人的电话号码:')
            print('已保存')               
    if n == 4:
      print('谢谢使用')
      break
    if n == 5:
      print('您的通讯录如下:')
      print(con)
运行结果如下:
请输入指令代码:2
请输入该联系人姓名:132
请输入该联系人的电话号码:213456897
已保存
请输入指令代码:5
您的通讯录如下:
{}

问题主要是保存不到con的字典里面去

wp231957 发表于 2022-5-18 07:27:23

con = dict()这句代码放在循环内部,每循环一次,被清空一次,就这样了,知道前因大概就知道咋改了吧

Twilight6 发表于 2022-5-18 08:39:52


你将 con = dict() 放在循环第一行代码

每次循环都会导致字典清空初始化为空字典的

所以你要讲 con = dict() 放在循环外,参考代码:

con = dict()
while 1:
    n = int(input('请输入指令代码:'))
    if n == 1:
      name = input('请输入该联系人姓名:')
      if name in con:
            print(name + ':' + con)
      else:
            print('未能找到该联系人,下次请输入2保存该联系人')
    if n == 2:
      name = input('请输入该联系人姓名:')
      if name in con:
            print('该用户已经存在---->>', end=' ')
            print(name + ':' + con)
            ask = input('是否修改用户资料(yes/no):')
            if ask == 'yes':
                con = input('请输入该联系人的电话号码:')
            else:
                print('好的,未修改')
      else:
            con = input('请输入该联系人的电话号码:')
            print('已保存')
    if n == 4:
      print('谢谢使用')
      break
    if n == 5:
      print('您的通讯录如下:')
      print(con)

ancera 发表于 2022-5-18 14:32:28

wp231957 发表于 2022-5-18 07:27
con = dict()这句代码放在循环内部,每循环一次,被清空一次,就这样了,知道前因大概就知道咋改了吧

谢谢啦,脑子糊涂了,没想过来
页: [1]
查看完整版本: 关于代码怎么都传不到字典里面