题库首页 › 青少年软件编程(Python) › 题目 15643

管理电话号码 编写一个使用SQLite管理电话号码的程序,功能有:显示所有电话号码、添加、删除和退出,请补全程序。 (本题无需运行通过,写入代码即可) import sqlite3 def init_db(): conn = sqlite3.connect('phonebook.db') cursor = conn.cursor() cursor.execute("DROP TABLE IF EXISTS contacts") cursor.execute('''CREATE TABLE contacts (name TEXT NOT NULL,phone TEXT PRIMARY KEY)''') conn.commit() return conn def show_all_contacts(conn): cursor = conn.cursor() cursor.execute("SELECT name, phone FROM contacts ORDER BY name") contacts = cursor. ① if not contacts: print("电话簿为空") return for name, phone in contacts: print(f"{name}: {phone}") def add_contact(conn): name = input("请输入姓名: ").strip() phone = input("请输入电话号码: ").strip() if not name or not phone: print("错误: 姓名和电话都不能为空") return try: cursor = conn.cursor() cursor.execute("INSERT INTO contacts (name, phone) VALUES (?, ?)", ( ② , ③ )) conn.commit() print(f"成功添加联系人: {name} - {phone}") except sqlite3.IntegrityError: print("错误: 该电话号码已存在") def delete_contact(conn): phone = input("请输入要删除的电话号码: ").strip() if not phone: print("错误: 请输入有效的电话号码") return cursor = conn.cursor() cursor.execute("SELECT name FROM contacts WHERE phone=?", (phone,)) result = cursor. ④ if not result: print("错误: 未找到该电话号码") return confirm = input(f"确定要删除 {result[0]}({phone}) 吗? (y/n): ").lower() if confirm == 'y': cursor.execute("DELETE FROM contacts WHERE phone=?", (phone,)) conn.commit() print("联系人已删除") else: print("取消删除") # 主程序 def main(): conn = init_db() while True: print("----------------") show_all_contacts(conn) print("\n请选择操作:") print("1. 添加联系人") print("2. 删除联系人") print("0. 退出程序") choice = input("请输入选项(0-2): ").strip() if choice == "1": add_contact(conn) elif choice == "2": delete_contact(conn) elif choice == "0": print("\n感谢使用电话簿管理系统,再见!") conn.close() break else: print("无效输入,请重新选择!") if __name__ == "__main__": main()

正确答案:补全答案(Python电话簿):①fetchall() ②name ③phone ④fetchone()。核心:SQLite增删查。

试卷来源:202506 青少年软件编程等级考试Python六级真题

本卷相关题目

在线做题 同科目题库