欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實現(xiàn)簡單通訊錄管理系統(tǒng)

 更新時間:2022年05月16日 14:56:33   作者:Shelumiel Yan  
這篇文章主要為大家詳細介紹了python實現(xiàn)簡單通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python實現(xiàn)通訊錄管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

=====歡迎使用通訊錄管理系統(tǒng)=====
1.添加
2.修改
3.冊除
4.查詢
5.排序
6.退出
=========================

請選擇你要執(zhí)行的操作的序號,具體要求:

1)通訊錄要以文件的形式存儲在硬盤上(比如D:\tongxunlu) ,每一條數(shù)據(jù)(聯(lián)系人姓名和手機號碼)存儲一行,如果一個聯(lián)系人有多個手機號,則都存儲在同一行,即通訊錄中每個聯(lián)系入的數(shù)據(jù)占一行。

2)系統(tǒng)運行時初始菜單如上,根據(jù)用戶選擇的序號執(zhí)行相應(yīng)的操作:

添加功能:提醒角戶輸入姓名和手機號碼,同時進行手機號碼格式檢查,合法則該姓名和手機號碼插入到通訊錄最后一行。
修改功能:根據(jù)用戶指定的聯(lián)系人姓名修改其手機號碼,修改后保存文件。 刪除功能:根據(jù)用戶輸人的姓名刪除該條記錄。
查詢功能:可以根據(jù)聯(lián)系人姓名查詢其手機號,也可以根據(jù)手機號查詢聯(lián)系人姓名。 排序功能:要求用戶選擇按聯(lián)系人姓名升序或降序,對通訊錄進行排序。
退出功能:結(jié)束程序的運行。 注意:只有選擇序號6(退出)時,程序的運行才會結(jié)束,否則一直循環(huán)等待用戶進行增刪改查操作。

這里我利用openpyxl對Excel操作

源碼:

from openpyxl import load_workbook

fn = r'd:\tongxunlu.xlsx'


# 打印操作菜單
def showMenu():
? ? print("========歡迎使用通訊錄管理系統(tǒng)========")
? ? 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位數(shù)字!")
? ? ? ? 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位數(shù)字!")
? ? ? ? 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)


# 循環(huán)函數(shù)
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("輸入的序號不在范圍內(nèi)!")

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 實現(xiàn)12306登錄功能實例代碼

    Python 實現(xiàn)12306登錄功能實例代碼

    這篇文章主要介紹了Python 實現(xiàn)12306登錄功能的完整代碼,需要的朋友可以參考下
    2018-02-02
  • python運行shell命令subprocess的實現(xiàn)

    python運行shell命令subprocess的實現(xiàn)

    本文主要介紹了python運行shell命令subprocess的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • python的launcher用法知識點總結(jié)

    python的launcher用法知識點總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于python的launcher用法知識點總結(jié)內(nèi)容,有興趣的朋友們可以學習下。
    2020-08-08
  • 如何使用pytorch實現(xiàn)LocallyConnected1D

    如何使用pytorch實現(xiàn)LocallyConnected1D

    由于LocallyConnected1D是Keras中的函數(shù),為了用pytorch實現(xiàn)LocallyConnected1D并在960×33的數(shù)據(jù)集上進行訓練和驗證,本文分步驟給大家介紹如何使用pytorch實現(xiàn)LocallyConnected1D,感興趣的朋友一起看看吧
    2023-09-09
  • Python制作動態(tài)詞頻條形圖的全過程

    Python制作動態(tài)詞頻條形圖的全過程

    說起動態(tài)圖表,最火的莫過于動態(tài)條形圖了,下面這篇文章主要給大家介紹了關(guān)于Python制作動態(tài)詞頻條形圖的全過程,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-11-11
  • Python與C++中梯度方向直方圖的實現(xiàn)

    Python與C++中梯度方向直方圖的實現(xiàn)

    在學習HOG特征的時候,發(fā)現(xiàn)一片英文文章講得淺顯易懂。因此翻譯在這里學習,感興趣的朋友快來看看吧
    2022-03-03
  • Python中JSON常見用法(json.load()、json.loads()、json.dump()、json.dumps())

    Python中JSON常見用法(json.load()、json.loads()、json.dump()、json.du

    本文主要介紹了Python中JSON常見用法(json.load()、json.loads()、json.dump()、json.dumps()),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • Jupyter Notebook讀取csv文件出現(xiàn)的問題及解決

    Jupyter Notebook讀取csv文件出現(xiàn)的問題及解決

    這篇文章主要介紹了Jupyter Notebook讀取csv文件出現(xiàn)的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 使用python爬取微博數(shù)據(jù)打造一顆“心”

    使用python爬取微博數(shù)據(jù)打造一顆“心”

    這篇文章主要介紹了使用python基于微博數(shù)據(jù)打造一顆“心”,作為程序員,我準備了一份特別的禮物,用以往發(fā)的微博數(shù)據(jù)打造一顆“愛心”,我想她一定會感動得哭了吧,需要的朋友可以參考下
    2019-06-06
  • python裝飾器代替set get方法實例

    python裝飾器代替set get方法實例

    今天小編就為大家分享一篇python裝飾器代替set get方法實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論