优化这段代码: ```python contacts = {} # 储存联系人信息的字典 def add_contact(name, phone): """添加联系人""" contacts[name] = phone print("联系人添加成功!") def find_contact(name): """查找联系人""" if name in contacts: print(f"{name} 的电话号码是 {contacts[name]}") else: print(f"未找到名为 {name} 的联系人。") def delete_contact(name): """删除联系人""" if name in contacts: del contacts[name] print(f"{name} 已被删除。") else: print(f"未找到名为 {name} 的联系人。") def show_contacts(): """显示所有联系人""" if not contacts: print("暂无联系人") else: for name, phone in contacts.items(): print(f"{name}: {phone}") # 主程序 while True: print(""" Welcome to the Phonebook App! 请选择以下操作: 1. 添加联系人 2. 查找联系人 3. 删除联系人 4. 显示所有联系人 5. 退出程序 """) choice = input("请输入数字以选择操作:") if choice == "1": name = input("请输入联系人姓名:") phone = input("请输入电话号码:") add_contact(name, phone) elif choice == "2": name = input("请输入要查找的联系人姓名:") find_contact(name) elif choice == "3": name = input("请输入要删除的联系人姓名:") delete_contact(name) elif choice == "4": show_contacts() elif choice == "5": print("感谢使用电话簿程序。") break # 结束程序 else: print("无效的输入,请重新尝试。") ``` 希望能对你有帮助!
时间: 2024-01-09 15:04:45 浏览: 166
好的,以下是我对代码的优化建议:
1. 将储存联系人信息的字典改为类的属性,这样可以更方便地管理代码和数据。
2. 将添加、查找、删除、显示联系人的方法都放在联系人类中,这样可以更好地封装代码和数据。
3. 在类的构造方法中初始化联系人字典,这样可以避免在方法中使用时出现字典未定义的错误。
4. 在类方法中使用类属性,可以避免使用全局变量,提高代码可读性和可维护性。
5. 在主程序中将用户输入的选择作为字符串,使用字典来匹配对应的方法,避免使用大量的 if/else 语句。
代码示例:
```python
class Contacts:
def __init__(self):
self.contacts = {}
def add_contact(self, name, phone):
"""添加联系人"""
self.contacts[name] = phone
print("联系人添加成功!")
def find_contact(self, name):
"""查找联系人"""
if name in self.contacts:
print(f"{name} 的电话号码是 {self.contacts[name]}")
else:
print(f"未找到名为 {name} 的联系人。")
def delete_contact(self, name):
"""删除联系人"""
if name in self.contacts:
del self.contacts[name]
print(f"{name} 已被删除。")
else:
print(f"未找到名为 {name} 的联系人。")
def show_contacts(self):
"""显示所有联系人"""
if not self.contacts:
print("暂无联系人")
else:
for name, phone in self.contacts.items():
print(f"{name}: {phone}")
if __name__ == '__main__':
phonebook = Contacts()
options = {
"1": phonebook.add_contact,
"2": phonebook.find_contact,
"3": phonebook.delete_contact,
"4": phonebook.show_contacts,
"5": exit
}
while True:
print(""" Welcome to the Phonebook App! 请选择以下操作:
1. 添加联系人
2. 查找联系人
3. 删除联系人
4. 显示所有联系人
5. 退出程序
""")
choice = input("请输入数字以选择操作:")
if choice in options:
if choice == "1":
name = input("请输入联系人姓名:")
phone = input("请输入电话号码:")
options[choice](name, phone)
elif choice == "2" or choice == "3" or choice == "4":
name = input("请输入联系人姓名:")
options[choice](name)
elif choice == "5":
print("感谢使用电话簿程序。")
break
else:
print("无效的输入,请重新尝试。")
```
这样的代码结构更加清晰,易于理解和维护。
阅读全文