鱼C论坛

 找回密码
 立即注册
查看: 3011|回复: 8

[已解决]小甲鱼课后作业是不是写错了

[复制链接]
发表于 2023-8-4 15:39:17 | 显示全部楼层
回答:小甲鱼新版课程第37讲中的课后作业题示例中存在一个逻辑错误。

在删除模式下,示例中并没有将姓名为"不二如是"的用户删除,而是选择了不继续删除操作。然而,在打印模式下并没有将该用户打印出来,这是一个错误。

根据示例的逻辑,应该在删除模式中选择不删除后,该用户信息应该继续保留,并且在打印模式下应该打印出所有用户的信息。

因此,可以将代码进行以下修改以修复这个错误:
  1. contacts = {}
  2. def add_contact():
  3.     while True:
  4.         name = input("请输入姓名:")
  5.         if name in contacts:
  6.             print("该姓名已录入,手机号码是:")
  7.             print(contacts[name])
  8.             choice = input("请问是否修改(Y/N):")
  9.             if choice == 'Y':
  10.                 number = input("请输入新的手机号码:")
  11.                 contacts[name] = number
  12.         else:
  13.             number = input("请输入手机号码:")
  14.             contacts[name] = number
  15.         choice = input("是否继续录入(Y/N):")
  16.         if choice != 'Y':
  17.             break
  18. def search_contact():
  19.     while True:
  20.         name = input("请输入姓名:")
  21.         if name in contacts:
  22.             print(name + ":" + contacts[name])
  23.         else:
  24.             print("未找到该联系人")
  25.         choice = input("是否继续查询(Y/N):")
  26.         if choice != 'Y':
  27.             break
  28. def delete_contact():
  29.     while True:
  30.         name = input("请输入姓名:")
  31.         if name in contacts:
  32.             choice = input("是否确认删除(Y/N):")
  33.             if choice == 'Y':
  34.                 del contacts[name]
  35.                 print(name + "的联系信息已删除")
  36.         else:
  37.             print("未找到该联系人")
  38.         choice = input("是否继续删除(Y/N):")
  39.         if choice != 'Y':
  40.             break
  41. def print_contacts():
  42.     for name, number in contacts.items():
  43.         print(name + ":" + number)
  44. def main():
  45.     while True:
  46.         command = input("请输入命令(I:录入/C:查询/D:删除/P:打印/E:退出):")
  47.         if command == 'I':
  48.             add_contact()
  49.         elif command == 'C':
  50.             search_contact()
  51.         elif command == 'D':
  52.             delete_contact()
  53.         elif command == 'P':
  54.             print_contacts()
  55.         elif command == 'E':
  56.             break
  57.         else:
  58.             print("无效命令")
  59. if __name__ == '__main__':
  60.     main()
复制代码

通过以上修改,保留了删除操作中选择不删除后的用户信息,并在打印模式下打印出所有用户的信息。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-6 02:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表