|
|
发表于 2023-8-4 15:39:17
|
显示全部楼层
回答:小甲鱼新版课程第37讲中的课后作业题示例中存在一个逻辑错误。
在删除模式下,示例中并没有将姓名为"不二如是"的用户删除,而是选择了不继续删除操作。然而,在打印模式下并没有将该用户打印出来,这是一个错误。
根据示例的逻辑,应该在删除模式中选择不删除后,该用户信息应该继续保留,并且在打印模式下应该打印出所有用户的信息。
因此,可以将代码进行以下修改以修复这个错误:
- contacts = {}
- def add_contact():
- while True:
- name = input("请输入姓名:")
- if name in contacts:
- print("该姓名已录入,手机号码是:")
- print(contacts[name])
- choice = input("请问是否修改(Y/N):")
- if choice == 'Y':
- number = input("请输入新的手机号码:")
- contacts[name] = number
- else:
- number = input("请输入手机号码:")
- contacts[name] = number
- choice = input("是否继续录入(Y/N):")
- if choice != 'Y':
- break
- def search_contact():
- while True:
- name = input("请输入姓名:")
- if name in contacts:
- print(name + ":" + contacts[name])
- else:
- print("未找到该联系人")
- choice = input("是否继续查询(Y/N):")
- if choice != 'Y':
- break
- def delete_contact():
- while True:
- name = input("请输入姓名:")
- if name in contacts:
- choice = input("是否确认删除(Y/N):")
- if choice == 'Y':
- del contacts[name]
- print(name + "的联系信息已删除")
- else:
- print("未找到该联系人")
- choice = input("是否继续删除(Y/N):")
- if choice != 'Y':
- break
- def print_contacts():
- for name, number in contacts.items():
- print(name + ":" + number)
- def main():
- while True:
- command = input("请输入命令(I:录入/C:查询/D:删除/P:打印/E:退出):")
- if command == 'I':
- add_contact()
- elif command == 'C':
- search_contact()
- elif command == 'D':
- delete_contact()
- elif command == 'P':
- print_contacts()
- elif command == 'E':
- break
- else:
- print("无效命令")
- if __name__ == '__main__':
- main()
复制代码
通过以上修改,保留了删除操作中选择不删除后的用户信息,并在打印模式下打印出所有用户的信息。 |
|