ChuckCheng 发表于 2018-9-9 14:57:36

通讯录中的一个 小问题

本帖最后由 ChuckCheng 于 2018-9-9 15:00 编辑

25讲通讯录程序中,注意一个小问题。以下是正确的代码,但是在tenp=1的条件语句,如果把 print('\n')和 temp=input('请输入相关指令代码:')   都往后一个空格和前一个print对齐的话,为什么会出现一个死循环
正确的代码                                                                                                                                 
print('''|---欢迎进入通讯程序---|
|---1:查询联系人资料---|
|---2:插入新的联系人---|
|---3:删除已有联系人---|
|---4:退出通讯录程序---|''')
print('\n')
contact={} #设计一个 空的字典
name=list(contact)#这样是去除字典中的键,作为一个列表,方便后面处理
temp=input('请输入相关指令代码:')      
while temp!='4':##循环
            
            
    if temp=='2':
               
            info=input('请输入联系人姓名:')

            if info not in name:                               ##如果输入的名不在字典中,则创建一个
                num=input('请输入用户联系电话:')
                contact=num    ##输入电话号码

            else:
                print('您输入的姓名在通讯录中已存在--->>',info,':',contact)
                remedy=input('是否修改用户资料(YES/NO):')
                if remedy=='YES':
                        num=input('请输入用户联系电话:') ##修改电话号码
                        contact=num            
            name=list(contact) ##其实这里不用更新name,因为改变只是value电话号码,姓名并没有少
            print('\n')   
            temp=input('请输入相关指令代码:')
    elif temp=='1':
            
            check=input('请输入联系人姓名:')
            if check in name:
                print(check,':',contact)
            else:
                print('通讯录中无此人')
            print('\n')                                             
            temp=input('请输入相关指令代码:')               

    elif temp=='3':
      factor=input('输入删除对象:')
      if factor not in name:
            print('用户不存在')
      else:
            name.remove(factor)

      print('\n')
      temp=input('请输入相关指令代码:')                  
    else:
      temp=input('输入错误,请输入相关指令代码:')
      print('\n')                                                               
print('|---感谢使用通讯录程序---|')



有问题的代码:
print('''|---欢迎进入通讯程序---|
|---1:查询联系人资料---|
|---2:插入新的联系人---|
|---3:删除已有联系人---|
|---4:退出通讯录程序---|''')
print('\n')

contact={} #设计一个 空的字典

name=list(contact)#这样是去除字典中的键,作为一个列表,方便后面处理


temp=input('请输入相关指令代码:')
      


while temp!='4':##循环
            
            
    if temp=='2':
               
            info=input('请输入联系人姓名:')

            if info not in name:                               ##如果输入的名不在字典中,则创建一个
                num=input('请输入用户联系电话:')
                contact=num    ##输入电话号码

            else:
                print('您输入的姓名在通讯录中已存在--->>',info,':',contact)
                remedy=input('是否修改用户资料(YES/NO):')
                if remedy=='YES':
                        num=input('请输入用户联系电话:') ##修改电话号码
                        contact=num            
            name=list(contact) ##其实这里不用更新name,因为改变只是value电话号码,姓名并没有少
            print('\n')   
            temp=input('请输入相关指令代码:')
    elif temp=='1':
            
            check=input('请输入联系人姓名:')
            if check in name:
                print(check,':',contact)
            else:
                print('通讯录中无此人')
                print('\n')                                 ########对齐之后,会出现死循环,这是为什么
                temp=input('请输入相关指令代码:')               

    elif temp=='3':
      factor=input('输入删除对象:')
      if factor not in name:
            print('用户不存在')
      else:
            name.remove(factor)
         
      print('\n')
      temp=input('请输入相关指令代码:')                  
    else:
      temp=input('输入错误,请输入相关指令代码:')
      print('\n')
   
                                          
            
      
print('|---感谢使用通讯录程序---|')



            

钱闻韬 发表于 2018-9-12 21:17:22

不会

常德水鱼村 发表于 2018-9-13 08:44:48

支持楼主!楼主加油
页: [1]
查看完整版本: 通讯录中的一个 小问题