python基礎(四)----列表、字典練習題

szmtjs10發表於2024-04-01

好友管理系統


請設計一個好友管理系統,每個功能都對應一個序號,使用者可根據提示“請輸入您的選項”選擇序號執行相應的操作,包括:
(1)新增好友:使用者根據提示“請輸入要新增的好友:”輸入要新增好友的姓名,新增後會提示“好友新增成功”。
(2)刪除好友:使用者根據提示“請輸入刪除好友姓名:”輸入要刪除好友的姓名,刪除後提示“刪除成功”。
(3)備註好友:使用者根據提示“請輸入要修改的好友姓名:”和“請輸入修改後的好友姓名:”分別輸入修改前和修改後的好友姓名,修改後會提示“備註成功”。
(4)展示好友:若使用者還沒有新增過好友,提示“好友列表為空”,否則返回每個好友的姓名。
(5)退出:關閉好友系統。

import numpy as np


def add_demo():
    """新增好友"""
    str_add = input("請輸入要新增的名字:")
    list_load = np.load("list.npy")
    list1 = list_load.tolist()
    if str_add in list1:
        print("此好友已新增")
    else:
        list1.append(str_add)
        save_list(list1)
        print("新增成功")


def del_demo():
    """刪除好友"""
    str_del = input("請輸出需要刪除的好友:")
    list_load = np.load("list.npy")
    list1 = list_load.tolist()
    if str_del in list1:
        list1.remove(str_del)
        save_list(list1)
        print("刪除成功")
    else:
        print("沒有此好友")


def remakes_demo():
    """修改備註"""
    str_remakes1 = input("請輸出需要備註的姓名:")
    str_remakes2 = input("請輸出需要備註名稱:")
    list_load = np.load("list.npy")
    list1 = list_load.tolist()
    for i in list1:
        if str_remakes1 == i:
            list1.remove(i)
            list1.append(str_remakes2)
            print("備註成功")
            save_list(list1)
    print("沒有此好友,請先新增好友")


def exhibition_demo():
    """展示好友"""
    list_load = np.load("list.npy")
    list1 = list_load.tolist()
    print(list1)


def save_list(list1):
    """儲存資料"""
    list_save = np.array(list1)
    np.save("list.npy", list_save)

 flag = 1
 while flag == 1:
    print("------1.新增好友 2.刪除好友 3.備註好友 4.展示好友 5.退   出------")
    try:
        option = int(input("請輸入您的選項:"))
        if option == 1:
            add_demo()
        elif option == 2:
            del_demo()
        elif option == 3:
            remakes_demo()
        elif option == 4:
            exhibition_demo()
        elif option == 5:
            flag = 0
            print("thank")
        else:
            print("輸入有誤")
    except ValueError:
        print("輸入有誤") 作者:是遠道呀- https://www.bilibili.com/read/cv14649793/ 出處:bilibili

登入驗證系統:

要求如下:

完成登入系統

=====登入系統=====

1.登入

2.註冊

3.退出

要求:執行的程式碼終端可以看到上面這個介面(使用者輸入的賬號 密碼可以儲存在列表或則字典中,隨意選擇)

(1)使用者選擇1時,需要輸入賬號密碼,判斷使用者名稱密碼是否存在,如果存在顯示登入系統成功,不存在提示使用者輸入q回到首頁選擇註冊功能(注意:這裡要求是回到首頁程式並沒有結束)

(2)使用者選擇2時,需要輸入賬號密碼,判斷使用者名稱密碼是否存在,如果存在顯示該使用者已經註冊過,提示使用者輸入q回到首頁登入即可,不存在將使用者的賬號密碼儲存,顯示註冊成功

(3) 使用者輸入3直接退出程式,顯示歡迎下次使用提示:該題可以隨意發揮新增功能例如新增規則輸入賬號不能為空,密碼必須為8位, 找回密碼功能,修改密碼功能發揮你的想象靈活運用

分析:

1.首頁面顯示

我們用到三引號,進行多行文字輸出

print('''
=======登⼊系統======= 
1.登⼊ 
2.註冊
3.退出
''')

2.變數接收使用者輸入的數字

n = int(input('請選擇操作:'))

3.用字典儲存賬號與密碼

dic={}

4.用if語句實現不同頁面的進入

if n == 1:  # 登入
    print('請輸入賬號密碼:')
    name = input('賬號:')
    password = input('密碼:')
    dic[name] = password
    if dic[name] in dic:
        print('登入成功')
    else:
        print('密碼不存在,輸⼊q回到⾸⻚選擇註冊功能')
        if 'q' == input('輸入q:'):
            res()
if n == 2:  # 註冊
    print('請輸入賬號密碼:')
    name = input('賬號:')
    password = input('密碼:')
    dic[name] = password
    if dic[name] in dic:
        print('已註冊,輸⼊q回到⾸⻚選擇登入功能')
        if 'q' == input('輸入q:'):
            res()
    else:
        print('註冊成功')
    if n == 3:  # 退出
        print('歡迎下次使⽤ ')
        exit(0)

4.因為使用者輸入q會跳轉到首頁面

所以我們將首頁面,與判斷放在兩個函式里

所以,完整程式碼為:

dic = {}
def op(dic, n):
    if n == 1:
        print('請輸入賬號密碼:')
        name = input('賬號:')
        password = input('密碼:')
        dic[name] = password
        if dic[name] in dic:
            print('登入成功')
        else:
            print('密碼不存在,輸⼊q回到⾸⻚選擇註冊功能')
            if 'q' == input('輸入q:'):
                res()
    if n == 2:
        print('請輸入賬號密碼:')
        name = input('賬號:')
        password = input('密碼:')
        dic[name] = password
        if dic[name] in dic:
            print('已註冊,輸⼊q回到⾸⻚選擇登入功能')
            if 'q' == input('輸入q:'):
                res()
        else:
            print('註冊成功')
        if n == 3:
            print('歡迎下次使⽤ ')
            exit(0)

def res():
    print('''
=======登⼊系統======= 
1.登⼊ 
2.註冊
3.退出
''')
    n = int(input('請選擇操作:'))
    op(dic, n)
    
res()

相關文章