天天看點

python寫一個學生資訊管理通訊錄,功能增加,删除,查詢,退出

川川在上次的代碼有了一些改進,這是基于上一次的代碼改進而來,需要建立一個addressbook.txt文檔,别的沒啥,代碼解析我寫在注釋了,還有别的問題可以留言或者加我扣扣群吧:970353786(哈哈,别加我扣扣了,人太多了)

#登入引導界面
txt =\
'''
1. 添加學生資訊
2. 删除學生資訊
3. 查詢學生資訊
4. 退出系統
'''

#檢測路徑下是否存在通訊錄檔案,如果沒有則建立檔案
import os.path
is_exist = os.path.isfile('addressbook.txt')

    #添加聯系人
def add():
    print('添加學生資訊')   #引導添加
    print('姓名: ', end = '')
    Name = input()      #輸入名字
    print('性别: ', end = '')
    Sex = input()       #輸入性别
    print('學号: ', end = '')
    studentNumber = input()    #輸入學号
    #将通訊錄追加到檔案末端
    Contacts_file = open('addressbook.txt','a')
    Contacts_file.write(Name+'\t\t\t'+Sex+'\t\t\t'+studentNumber+'\n')     #在檔案中以名字,性别,學号格式排列,最後一個學号就直接換行準備下一個
    Contacts_file.close()   #檔案寫好後就關閉
    print("添加資訊成功,已經儲存在文檔,請前去檢視"+'\n')

#删除通訊錄中的資訊
def delete():
    print('請輸入你要删除的學生名字: ', end = '')
    name = input()  #輸入需要删除的學生名字
    Contacts_file = open('addressbook.txt', 'r')   #打開文檔
    Contacts_list = []
    #将通訊錄緩存到清單内,遇到需要删除的通訊錄條目則跳過
    for line in Contacts_file.readlines():
        if line.find(name) != -1:
            continue
        Contacts_list.append(line)
    #将通訊錄清空,将緩存在清單中的通訊錄資訊加載進檔案内
    Contacts_file = open('addressbook.txt', 'w')
    for i in range(0, len(Contacts_list)):
        Contacts_file.write(Contacts_list[i])
    Contacts_file.close()
    print("該學生資訊已經删除,具體可以對照文檔檢視"+'\n')

#搜尋通訊錄
def search():
    print('請輸入你要查詢的人的名字: ',end = '')
    Search_name = input()
    Contacts_file = open('addressbook.txt','r')    #打開通訊錄文檔
    for line in Contacts_file.readlines():
        String = line
        find = String.find(Search_name)
        if find !=-1 :
            print("此人資訊為:")
            print("姓名:"+'\t\t'+'性别:'+'\t\t'+'學号:')
            print(line)
            break
    #若搜尋不到,傳回Not Found!
    if find == -1:
        print('此人資訊不存在')
    Contacts_file.close()

class InputError(Exception):
    '''當輸出有誤時,抛出此異常'''
    #自定義異常類型的初始化
    def __init__(self, value):
        self.value = value
    # 傳回異常類對象的說明資訊
    def __str__(self):
        return ("{} is invalid input".format(repr(self.value)))


#主函數
def main():
    while True:  # 如果為真
        # try:

        print("歡迎光臨學生管理系統,請選擇功能對應的數字執行操作:")  # 引導選擇
        print(txt)  # 列印引導界面
        choice = int(input())  # 輸入序号選擇

        try:
            if type(choice) != int:
                raise main()
        except Exception as e:
            print("輸入數字類型錯誤,請重新輸入功能對應的數字")
        # 輸入錯誤序号則重新開機程式,異常處理
        if choice not in [1, 2, 3, 4]:  # 不在這4個序号裡
            print('錯誤選擇')  # 列印錯誤選擇
            main()  # 重新開始
            break
        # 輸入正确序号執行相應程式
        elif choice == 1:  # 選擇序号為1
            add()  # 添加聯系人函數啟動
        elif choice == 2:  # 選擇序号為2
            delete()  # 删除聯系人函數啟動
        elif choice == 3:  # 選擇序号為3
            search()  # 查詢聯系人函數啟動
        elif choice == 4:  # 如果選擇序号為5
            break  # 結束執行


if __name__ == '__main__':
    main()      

運作效果:

python寫一個學生資訊管理通訊錄,功能增加,删除,查詢,退出
python寫一個學生資訊管理通訊錄,功能增加,删除,查詢,退出
python寫一個學生資訊管理通訊錄,功能增加,删除,查詢,退出