最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

題目

期末項目 

一. 項目要求

利用函數(shù)實現(xiàn)通訊錄管理系統(tǒng),通訊錄的內(nèi)容包含姓名、聯(lián)系方式、微信號、電子郵箱等需要保存的信息。至少要包含姓名和聯(lián)系方式兩種。管理系統(tǒng)的功能包括信息的添加、刪除、修改、查詢、顯示、保存的功能。

二.項目步驟

1.使用自定義函數(shù)實現(xiàn)每個功能

(1)功能菜單:顯示項目應(yīng)該具有的功能
(2)添加:輸入要添加的信息 
(3)刪除:輸入要刪除的聯(lián)系人姓名,刪除其所有的信息
(4)修改:輸入要修改的聯(lián)系人姓名,修改其信息
(5)查詢:輸入要查詢的聯(lián)系人姓名,遍歷列表,得到其信息
(6)顯示:顯示所有的聯(lián)系人信息
(7)保存:將數(shù)據(jù)保存到文件中
(8)主函數(shù):先顯示菜單,提示用戶輸入要進(jìn)行的操作代碼,調(diào)用相應(yīng)的函數(shù)

2. 當(dāng)添加、刪除、修改了信息后,要同步保存到文件中

用列表作為全局變量,當(dāng)列表信息發(fā)生變化,調(diào)用保存函數(shù)

3.編寫一個模塊,在主函數(shù)中調(diào)用該模塊,測試其功能。完成一個,測試一個,保證所有模塊能正確運行,信息存儲在文本文件中。

4.可以用列表,元組,字典存儲通訊錄信息。假如,現(xiàn)在只存儲姓名和手機號,這里選擇字典,轉(zhuǎn)換為元組放在列表里保存。

5.初始時,先創(chuàng)建了一個文本文件,文件名為學(xué)生姓名,并輸入空列表[]。

三、項目代碼要求:

1. 代碼要有必要的注釋,說明其功能。
2. 要有每個模塊的測試結(jié)果。
3. 若有截圖,截圖要清晰。

代碼

1.代碼說明

題目要求從模塊中調(diào)用函數(shù),因此需要在同一個文件夾下建立兩個python文件:manage.py和main.py. 其中,manage.py中設(shè)計函數(shù),main.py中調(diào)用manage.py中的函數(shù)并實現(xiàn)功能。

2.manage.py

'''
注意:
1.要求輸入的姓名默認(rèn)全部為合理輸入,并未對輸入內(nèi)容進(jìn)行判斷和過濾
2.默認(rèn)打開的文件已經(jīng)存在,并沒對文件狀態(tài)進(jìn)行判斷,而是以列表信息中是否存在該學(xué)生為依據(jù)
3.沒有使用字典的任何操作
4.如果希望將所有學(xué)生信息保存在同一個txt文件中,只需將每個函數(shù)中file_name重新命名的部分注釋掉
5.修改信息采用的方法是:將原內(nèi)容刪除,并重新寫入新內(nèi)容,這么做的原因是電腦要沒電了,這個可以作為自己的測試板塊,重新設(shè)計編寫
6.實驗步驟的最后一步 不知道是什么目的,并所以沒有這樣做
7.因為都是采用列表來判斷學(xué)生內(nèi)容,所以文件保存成功后重新運行程序列表清空,即不可再查詢到信息
8.打印所有信息可以采取文件夾下多文件讀取的方法,遍歷該目錄下的所有txt文件,讀出內(nèi)容并打印,請自行編寫

2021/6/16

新增注意:
1.修改文件內(nèi)容時,如果將姓名一同修改,則會出現(xiàn)文件名與文件內(nèi)容中的姓名不同的情況
2.修改文件內(nèi)容時,如果將該姓名修改為另一個已經(jīng)出現(xiàn)過的姓名,在列表中將會出現(xiàn)重名情況
3.先沒有處理重名情況的操作
4.同名情況下,如果修改該名字的信息,則將修改第一次出現(xiàn)該名稱的位置的信息
5.因此,如果錯誤1和錯誤2同時發(fā)生,文件就會,嗯...串了,就亂套了

'''


#d = {} ?#字典儲存信息

Student = []
path = "D:\\" ?#文件保存路徑 默認(rèn)為空即保存在當(dāng)前文件夾下 建議新建文件夾并修改路徑
file_name = path + "student.txt" #文件默認(rèn)保存位置

#顯示命令
def print_message():
? ? print("**************************************")
? ? print(" ? ? **1.添加學(xué)生信息")
? ? print(" ? ? **2.刪除學(xué)生信息")
? ? print(" ? ? **3.修改學(xué)生信息")
? ? print(" ? ? **4.查找學(xué)生信息")
? ? print(" ? ? **5.查看所有信息")
? ? print(" ? ? **6.查看操作菜單")


#添加信息
def add():
? ? ? ? print("請輸入需要添加到姓名、手機號,以空格隔開:")
? ? ? ? #列表
? ? ? ? A = input().split(" ")
? ? ? ? temp_str = ""
? ? ? ? for i in A:
? ? ? ? ? ? temp_str += i+" ?"
? ? ? ? if temp_str != '/n': #防止錯誤輸入
? ? ? ? ? ? ?Student.append(A) ?#加入列表
? ? ? ? ? ? ?file_name = path+A[0] +".txt"
? ? ? ? ? ? ?print(temp_str, file=open(file_name, 'w')) ?#創(chuàng)建文件,并寫入文件 ?如果存在同名文件,則原內(nèi)容會被覆蓋
? ? ? ? #字典
? ? ? ? # A = input().split(" ")
? ? ? ? # Name.append(A[0])
? ? ? ? # d[A[0]] = A[1]
? ? ? ? # print("添加成功")
? ? ? ? # save(A[0]) ?# 更新學(xué)生信息

#刪除信息
def delete():
? ? print("請輸入需要刪除的姓名:")
? ? name = input()
? ? #字典刪除
? ? # del d[name]
? ? # Name.remove(name)
? ? #從文件中刪除學(xué)生信息
? ? exist = 0
? ? for i in range(len(Student)):
? ? ? ? #存在該學(xué)生
? ? ? ? if Student[i].count(name) > 0:
? ? ? ? ? ? if name == Student[i][0]:
? ? ? ? ? ? ? ? file_name = path + name + ".txt"
? ? ? ? ? ? ? ? #刪除列表中的信息
? ? ? ? ? ? ? ? Student.pop(i)
? ? ? ? ? ? ? ? #刪除文件中的信息
? ? ? ? ? ? ? ? lines = [l for l in open(file_name, "r") if l.find(name, 0, len(name)) != 0] #暫時的刪除方式
? ? ? ? ? ? ? ? fd = open(file_name, "w") ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#如: 要刪除'張三‘,但‘張三四'也會被刪除
? ? ? ? ? ? ? ? fd.writelines(lines)
? ? ? ? ? ? ? ? fd.close()
? ? ? ? ? ? ? ? print("刪除成功")
? ? ? ? ? ? ? ? exist = 1 ?#判斷學(xué)生是否存在的標(biāo)簽
? ? ? ? ? ? ? ? break
? ? ? ? else :
? ? ? ? ? ? exist = 0
? ? if exist == 0:
? ? ? ? ?print("未找到該學(xué)生的信息!")


def delete_2(name,f_n):
? ? ? # 從列表里刪除該學(xué)生
? ? ? ? for i in range(len(Student)):
? ? ? ? ? ? # 存在該學(xué)生
? ? ? ? ? ? if Student[i].count(name) > 0:
? ? ? ? ? ? ? ? if name == Student[i][0]:
? ? ? ? ? ? ? ? ? ? del Student[i]
? ? ? ? ? ? ? ? ? ? break

? ? ? ? #從文件中刪除學(xué)生信息
? ? ? ? lines = [l for l in open(f_n, "r") if l.find(name, 0, len(name)) != 0]
? ? ? ? fd = open(f_n, "w")
? ? ? ? fd.writelines(lines)
? ? ? ? fd.close()


#查詢信息
def search():
? ? print("請輸入需要查詢的姓名:")
? ? name ?= input()
? ? #字典查詢
? ? #print("查詢結(jié)果:",name,d[name])
? ? exist = 0
? ? for i in range(len(Student)):
? ? ? ? #存在該學(xué)生 這一步判斷有點多余 但是為了簡化打印未找到的結(jié)果還是這樣做了
? ? ? ? if Student[i].count(name) > 0:
? ? ? ? ? ? if name == Student[i][0]:
? ? ? ? ? ? ? ? print("查詢結(jié)果: ")
? ? ? ? ? ? ? ? for temp in Student[i]:
? ? ? ? ? ? ? ? ? ? print(temp,end=" ")
? ? ? ? ? ? ? ? print()
? ? ? ? ? ? ? ? exist = 1 ?# 判斷學(xué)生是否存在的標(biāo)簽
? ? ? ? ? ? ? ? break
? ? ? ? else:
? ? ? ? ? ? ? ? exist = 0
? ? if exist == 0:
? ? ? ? ? ? ? ? print("未找到該學(xué)生的信息!")

#更改文件信息
def change_file():
? ? print("輸入需要修改信息的學(xué)生姓名:")
? ? name = input()
? ? exist = 0
? ? for i in range(len(Student)):
? ? ? ? #存在該學(xué)生
? ? ? ? if Student[i].count(name) > 0:
? ? ? ? ? ? if name == Student[i][0]:
? ? ? ? ? ? ? ? # 找到了該學(xué)生
? ? ? ? ? ? ? ? # 下面進(jìn)行修改信息的操作
? ? ? ? ? ? ? ? file_name = path + name + ".txt"
? ? ? ? ? ? ? ? print("輸入修改后該學(xué)生的所有信息:")
? ? ? ? ? ? ? ? A = input().split(" ")
? ? ? ? ? ? ? ? temp_str = ""
? ? ? ? ? ? ? ? for i in A:
? ? ? ? ? ? ? ? ? ? temp_str += i + " ?"
? ? ? ? ? ? ? ? if temp_str != '/n': ?# 防止錯誤輸入
? ? ? ? ? ? ? ? ? ? Student.append(A) ?# 加入列表
? ? ? ? ? ? ? ? ? ? delete_2(name,file_name) # 先刪除該信息

? ? ? ? ? ? ? ? ? ? print(temp_str, file=open(file_name, 'a')) ?# 創(chuàng)建文件,并重新寫入文件
? ? ? ? ? ? ? ? print("修改成功")
? ? ? ? ? ? ? ? exist = 1 ?# 判斷學(xué)生是否存在的標(biāo)簽
? ? ? ? ? ? ? ? break
? ? ? ? else:
? ? ? ? ? ? ? ? exist = 0
? ? if exist == 0:
? ? ? ? ? ? ? ? print("未找到該學(xué)生的信息!")


#顯示信息
def printf():
? ? print("所有信息如下:")
? ? for i in Student:
? ? ? ? for j in i:
? ? ? ? ? ? print(j,end=" ")
? ? ? ? print()

3.main.py

import manage

print("**************************************")
print(" ? ?歡迎來到學(xué)生信息管理系統(tǒng)")
manage.print_message() #打印命令指令
print("**************************************")
while(True):

? ? print("請輸入需要執(zhí)行的操作(輸入'q‘退出程序):")
? ? choice = input()
? ? if choice == '1':
? ? ? ? manage.add() ? #增
? ? if choice == '2':
? ? ? ?manage.delete() #刪
? ? if choice == '3':
? ? ? ?manage.change_file() ?#改
? ? if choice == '4':
? ? ? ?manage.search() ?#查
? ? if choice == '5':
? ? ? ?manage.printf() ?#打印
? ? if choice == '6':
? ? ? ? manage.print_message() ?# 打印命令指令
? ? if choice == 'q':
? ? ? ? print("退出!")
? ? ? ? break

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

相關(guān)文章

  • 基于python使用Pillow做動態(tài)圖在圖中生成二維碼以及圖像處理

    基于python使用Pillow做動態(tài)圖在圖中生成二維碼以及圖像處理

    這篇文章主要介紹了基于python使用Pillow做動態(tài)圖在圖中生成二維碼以及圖像處理,分享pillow的一些簡單使用,喜歡的話大家可以參考文章內(nèi)容下去試試奧
    2022-02-02
  • Pytorch使用visdom可視化問題

    Pytorch使用visdom可視化問題

    這篇文章主要介紹了Pytorch使用visdom可視化問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • RC4文件加密的python實現(xiàn)方法

    RC4文件加密的python實現(xiàn)方法

    這篇文章主要介紹了RC4文件加密的python實現(xiàn)方法,實例分析了RC4文件加密的原理與Python實現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • 淺談python元素如何去重,去重后如何保持原來元素的順序不變

    淺談python元素如何去重,去重后如何保持原來元素的順序不變

    這篇文章主要介紹了淺談python元素如何去重,去重后如何保持原來元素的順序不變?具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python中如何用time方法生成當(dāng)前時間年月日時分秒

    python中如何用time方法生成當(dāng)前時間年月日時分秒

    這篇文章主要給大家介紹了關(guān)于python中如何用time方法生成當(dāng)前時間年月日時分秒的相關(guān)資料,在Python中與時間處理有關(guān)的模塊就包括:time,datetime以及calendar,Time模塊用以取得系統(tǒng)時間相關(guān)的信息和時間的格式化等操作,需要的朋友可以參考下
    2023-08-08
  • Python生成任意范圍任意精度的隨機數(shù)方法

    Python生成任意范圍任意精度的隨機數(shù)方法

    下面小編就為大家分享一篇Python生成任意范圍任意精度的隨機數(shù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 配置python連接oracle讀取excel數(shù)據(jù)寫入數(shù)據(jù)庫的操作流程

    配置python連接oracle讀取excel數(shù)據(jù)寫入數(shù)據(jù)庫的操作流程

    這篇文章主要介紹了配置python連接oracle,讀取excel數(shù)據(jù)寫入數(shù)據(jù)庫,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • numpy 對矩陣中Nan的處理:采用平均值的方法

    numpy 對矩陣中Nan的處理:采用平均值的方法

    今天小編就為大家分享一篇numpy 對矩陣中Nan的處理:采用平均值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 深入理解Python對Json的解析

    深入理解Python對Json的解析

    Json是一種常用的數(shù)據(jù)交換結(jié)構(gòu),由于輕量、易于閱讀和編寫等特點,在網(wǎng)絡(luò)方面應(yīng)用很廣。下面這篇文章主要介紹了Python對Json解析的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • 如何基于pythonnet調(diào)用halcon腳本

    如何基于pythonnet調(diào)用halcon腳本

    這篇文章主要介紹了如何基于pythonnet調(diào)用halcon腳本,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01

最新評論

玉林市| 富源县| 萝北县| 长葛市| 自贡市| 冷水江市| 崇州市| 蒙山县| 临朐县| 江源县| 定日县| 崇义县| 大厂| 龙川县| 安西县| 阆中市| 临泉县| 文昌市| 新竹县| 望谟县| 夏河县| 利川市| 公安县| 陇川县| 峨边| 漳浦县| 交城县| 黑龙江省| 环江| 华池县| 淮安市| 乌拉特前旗| 太和县| 土默特右旗| 囊谦县| 新津县| 松阳县| 长岛县| 湖南省| 西城区| 长汀县|