<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了python實現通訊錄管理系統的具體程式碼,供大家參考,具體內容如下
=====歡迎使用通訊錄管理系統=====
1.新增
2.修改
3.冊除
4.查詢
5.排序
6.退出
=========================
請選擇你要執行的操作的序號,具體要求:
1)通訊錄要以檔案的形式儲存在硬碟上(比如D:tongxunlu) ,每一條資料(聯絡人姓名和手機號碼)儲存一行,如果一個聯絡人有多個手機號,則都儲存在同一行,即通訊錄中每個聯絡入的資料佔一行。
2)系統執行時初始選單如上,根據使用者選擇的序號執行相應的操作:
新增功能:提醒角戶輸入姓名和手機號碼,同時進行手機號碼格式檢查,合法則該姓名和手機號碼插入到通訊錄最後一行。
修改功能:根據使用者指定的聯絡人姓名修改其手機號碼,修改後儲存檔案。 刪除功能:根據使用者輸人的姓名刪除該條記錄。
查詢功能:可以根據聯絡人姓名查詢其手機號,也可以根據手機號查詢聯絡人姓名。 排序功能:要求使用者選擇按聯絡人姓名升序或降序,對通訊錄進行排序。
退出功能:結束程式的執行。 注意:只有選擇序號6(退出)時,程式的執行才會結束,否則一直迴圈等待使用者進行增刪改查操作。
這裡我利用openpyxl對Excel操作
原始碼:
from openpyxl import load_workbook fn = r'd:tongxunlu.xlsx' # 列印操作選單 def showMenu(): print("========歡迎使用通訊錄管理系統========") print(" 1.新增") print(" 2.修改") print(" 3.刪除") print(" 4.查詢") print(" 5.排序") print(" 6.退出") print("==================================") # 開啟檔案 def openFile(): wb = load_workbook(fn) ws = wb.active return ws, wb # 判斷手機號是否合法 def isLegal(s): if len(s) == 11 and s.isdigit(): return True else: return False # 新增手機號 def addData(): data = input("輸入姓名和號碼(空格分開):").split(" ") for i in range(len(data), 1, -1): # 從最後一個手機號開始 s = isLegal(data[i - 1]) if not s: print("手機號碼必須為11位數位!") addData() else: w1, w2 = openFile() w1.append(data) print("新增成功!") w2.save(fn) # 更改手機號 def changeData(): flag = False data = input("請輸入需要修改的姓名和新的手機號碼(空格分開):").split(" ") if not isLegal(data[1]): print("手機號碼必須為11位數位!") changeData() else: w1, w2 = openFile() for row in w1.rows: if row[0].value == data[0]: flag = True row[1].value = data[1] if not flag: print("通訊錄中沒有此人!") changeData() else: print("修改成功!") w2.save(fn) # 刪除人 def delete(): flag = False x = 0 name = input("請輸入要刪除的姓名:") w1, w2 = openFile() for row in w1.rows: x += 1 if row[0].value == name: flag = True w1.delete_rows(x) if not flag: print("通訊錄中沒有此人!") else: print("刪除成功!") w2.save(fn) # 查詢手機號或者姓名 def search(): flag = False data = input("請輸入姓名或手機號碼:") w1, w2 = openFile() for row in w1.rows: if row[0].value == data: flag = True print(row[1].value) if row[2].value is not None: print(row[2].value) elif row[1].value == data or row[2].value == data: flag = True print(row[0].value) if not flag: print("通訊錄中沒有此人或手機號!") search() # 排序 def sort(): s = input("請輸入正序或逆序(正序輸入F,逆序輸入T):") if s == "F": flag = False elif s == "T": flag = True data = [] w1, w2 = openFile() for row in w1.rows: data1 = [] for cell in row: data1.append(cell.value) data.append(data1) data.sort(key=lambda x: x[0], reverse=flag) w2.remove(w1) w1 = w2.create_sheet() for i in data: w1.append(i) w2.save(fn) # 迴圈函數 while True: showMenu() num = int(input("請輸入操作序號:")) if num == 1: addData() elif num == 2: changeData() elif num == 3: delete() elif num == 4: search() elif num == 5: sort() elif num == 6: print("再見!") break else: print("輸入的序號不在範圍內!")
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45