首頁  >  文章  >  後端開發  >  如何使用Python寫一個簡單的圖書管理系統?

如何使用Python寫一個簡單的圖書管理系統?

WBOY
WBOY轉載
2023-05-07 21:52:103084瀏覽

    制定步驟

    1、進入提示詞:

    為了製作一個友善的“圖書管理系統”,先列出所有功能的選單。如下:

    print("""
    ***************************
    * 欢迎进入图书管理系统    *
    * 0 .退出                 *
    * 1 .列出所有书籍         *
    * 2 .添加书籍             *
    * 3 .修改书籍             *
    * 4 .删除书籍             *
    * 5 .借书                 *
    * 6 .还书                 *
    ***************************
    """)

    2、取得使用者輸入:

    第二步,使用者會輸入 0~6 的整數,以對應相對的功能。如果使用者輸入錯誤,輸出「輸入錯誤,請重新輸入」。

    while True:
        n=input("输入序号(0-6):")
        if n=="0":
            pass
        elif n=="1":
            pass
        elif n=="2":
            pass
        elif n=="3":
            pass
        elif n=="4":
            pass
        elif n=="5":
            pass
        elif n=="6":
            pass
        else:
            print("输入错误,请重新输入")
            print("")   #表示换一行

    擴充:

    很多語言都提供了「空語句」支援。 Python 也不例外,Python 的 pass 語句就是空語句。

    有時候程式需要佔一個位元、放一條語句,但又不希望這條語句做任何事情,此時就可透過 pass 語句來實現。透過使用 pass 語句,可以讓程式更完整。

    如下程式示範了pass 作為空語句的用法:

    s=int(input("请输入一个整数: "))
    if s>5:
        print("大于5")
    elif s<5:
        pass   # 相当于占位符
    else:
        print("等于5")

    #如同從上方程式所看到的,對於s 小於5 的情形,程式暫時不處理(或不知道如何處理),此時程式就需要透過空語句來佔一個位,這樣即可使用pass 語句了。

    3、完善各指令程式

    如:使用者輸入“0”,即不但需要告訴使用者“已退出程式”,還要完成“退出”功能,代碼如下:

    if n=="0":
        print("退出成功")
        break

    再比如:用戶輸入“5”( 借書),如果庫存仍有,提示“借書成功”,並減少此書庫存。否則提示“庫存不足”。如下程式:

    elif n=="5":
        xh=intinput()
        book=books[xh-1]
        if book["num"]>0:
            book["num"]-=1
            print("借书成功")
        else:
            print("库存不足")

    請參考以上程式碼,完善其他功能。

    4、最佳化程序,讓程式碼更簡潔

    可以定義函數,並循環使用函數,有助於程式碼的簡潔性。如程式碼:

    def intinput(n="请输入序号:"):
        while True:
            s=input(n)
            if s.isnumeric():
                return int(s)
            else:
                print("请输入整数")

    擴充:

    str.isnumeric() 方法:

    偵測字串是否只由數字組成。這種方法是只針對 unicode 物件。

    函數參數意義與注意事項:

    各部分參數的意義如下:

    • 函數名稱:其實就是一個符合Python 語法的標識符,但不建議讀者使用a、b、c 這類簡單的標識符作為函數名,函數名最好能夠體現出該函數的功能(如上面的my_len,即表示我們自訂的len() 函數)。

    • 形參列表:設定函數可以接收多少個參數,多個參數之間用逗號( , )分隔。

    • [return [傳回值] ]:整體作為函數的可選參參數,用來設定函數的回傳值。也就是說,一個函數,可以用回傳值,也可以沒有回傳值,是否需要根據實際情況而定。

    附註:在建立函數時,即使函數不需要參數,也必須保留一對空的“()”,否則 Python 解譯器會提示“invaild syntax”錯誤。另外,如果想定義一個沒有任何功能的空函數,可以使用 pass 語句作為佔位符。

    函數的優點:

    • 在python之中使用函數最大和最直觀的優點就是可以將一段程式碼封裝起來以便隨時調用,這樣能夠極大的提高了程式的簡潔性和可讀性,還可以讓程式碼的邏輯性更加清晰。

    • 一般來說使用函數去封裝的程式碼區塊都是去實現某一種功能的,而被封裝成函數的程式碼就能夠不斷地去重複的呼叫。這樣既可以提高python程式的開發效率,還可以減少一些不必要程式碼的編寫。

    • 函數還有優點就是它其實是一個獨立於其他外部程式碼的模組,在一個python程式去執行時如果不手動的去調用函數的話那麼這個函數是不會去執行的。而當函數之中出現了錯誤的時候也很容易的就能夠去進行修改而不會對程式的運行造成太大的影響,很好的實現了模組化。

    • python函數還可以直接保存在一個py檔案之中然後以模組的方式去導入,這樣一個通用的編寫好的python函數就能夠運用在很多不同的程式之中,常使用的內建模組和python第三方函式庫內其實儲存的就是一個個函數。

    書籍管理系統所有程式碼:

    def intinput(n="请输入序号:"):
        while True:
            s=input(n)
            if s.isnumeric():
                return int(s)
            else:
                print("请输入整数")
     
    books=[{"name":"Scratch","isbn":"12345","num":2},
           {"name":"Python","isbn":"12346","num":5}]
    print("""
    ***************************
    * 欢迎进入图书管理系统    *
    * 0 .退出                 *
    * 1 .列出所有书籍         *
    * 2 .添加书籍             *
    * 3 .修改书籍             *
    * 4 .删除书籍             *
    * 5 .借书                 *
    * 6 .还书                 *
    ***************************
    """)
     
    while True:
        n=input("输入序号(0-6):")
        if n=="0":
            print("退出成功")
            break
        elif n=="1":
            print("序号\t书名\t书号\t数量")
            index=1
            for book in books:
                print("%d\t%s\t%s\t%d"%(index,book["name"],book["isbn"],book["num"]))
                index+=1
        elif n=="2":
            book=dict()
            book["name"]=input("请输入书名:")
            book["isbn"]=input("请输入书号:")
            book["num"]=intinput("请输入数量:")      
            books.append(book)
            print("添加成功")
        elif n=="3":
            try:
                xh=intinput()
                book=books[xh-1]
                book["name"]=input("请输入书名:")
                book["isbn"]=input("请输入书号:")
                book["num"]=intinput("请输入数量:")
                print("修改成功")
            except:
                print("出错了")
        elif n=="4":
            s=intinput()
            if 1<=s<=len(books):
                del books[xh-1]
                print("删除成功")
            else:
                print("超出范围")
        elif n=="5":
            xh=intinput()
            book=books[xh-1]
            if book["num"]>0:
                book["num"]-=1
                print("借书成功")
            else:
                print("库存不足")
        elif n=="6":
            xh=intinput()
            try:
                book=books[xh-1]
                book["num"]-=1
                print("还书成功")
            except:
                print("未查询到书本")
        else:
            print("输入错误,请重新输入")
            print("")

    以上是如何使用Python寫一個簡單的圖書管理系統?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除