python函数进阶(做一个图书馆系统)

book_name = {}

i = 1000


# 添加图书(添加图书的id 书名 存储位置 是否借出)--> 已完结
def add_book(i):
    a = input("是否添加图书:1.是\t2.否\t:")
    if a == "1":
        while i not in book_name:
            book_name[i] = {"书名": input('请输入需要添加的书名:'),
                            "储存位置": input("输入储存的位置"),
                            "是否借出": False}
            print(f"已添加图书\t{book_name[i]}", "\n", "-" * 50)

            b = input("是否继续添加 1.是\t2.否 :")
            if b == "1":
                i += 1

            elif b == "2":
                i += 1
                management()
            else:
                print("输入有误,已退出添加图书系统")
                print("-" * 50, "\n", f"本次添加的图示为\n{book_name}", "\n", '-' * 50)
                i += 1
                management()
                break
    elif a == "2":
        print('-' * 50, '\n', '返回到主界面')
        i += 1
        management()
    else:
        print("输入有误,已返回到主界面")
        i += 1
        management()

    return i


# 删除图书 (从图书馆移除这本书,改进部分:建立一个列表用于接纳删除的书)  --> 90%
def del_book():
    print(" 编号\t\t\t\t\t信息")
    print('-' * 50)
    for m in book_name.keys():
        b, c = m, book_name[m]
        print(b, c)
    print("-" * 50)
    while True:
        c = int(input("输入你要删除的书的编号:"))
        if c in book_name:
            # print(f"删除的书是《{book_name[c]['书名']}》", '\n', '-' * 50)
            b = input(f"真的要删除\t{c}——《{book_name[c]['书名']}》吗?(1.是\t2.否)")
            if b == "1":
                print(f"《{book_name[c]['书名']}》已删除", '\n', '-' * 50)
                del book_name[c]
                print(f"书店的其他书有")
                for i in book_name:
                    print(i, "\t", book_name[i])
                print('-' * 50)
                f = input("是否继续删除?(1.是\t2.否)")
                if f == "1":
                    pass
                else:
                    management()
            else:
                management()
        else:
            print(f"没有找到编号为 {c} 的书籍")
            print("已经返回主管理界面")
            management()


# 修改图书(包括id 书名 存储位置 是否借出)  --> 0%(功能三已完成)
def modify():
    print("编号\t\t\t书名\t\t储存位置\t\t\t是否借出")
    print('-' * 50)
    for i in book_name:
        x = book_name[i]["书名"]
        y = book_name[i]["储存位置"]
        z = book_name[i]["是否借出"]
        print(i, x, y, z, sep='\t\t')
    print('-' * 50)
    a = int(input(f"1.存储位置\t2.书名\n3.是否借出\n请输入需要修改的信息:"))
    # 1
    if a == 1:
        b = int(input("储存位置修改--请输入修改的图书的编号:"))
        if b in book_name:
            book_name[b]["储存位置"] = input(f"《{book_name[b]['书名']}》"
                                         f"的初始储存位置为 {book_name[b]['储存位置']}"
                                         f"\n输入修改后的存储位置")
            print(f"修改成功  此时《{book_name[b]['书名']}》的储存位置为 {book_name[b]['储存位置']}")
            print("已经返回主管理界面")
            management()
        else:
            print(f"没有找到编号为 {b} 的书")
            print("已经返回主管理界面")
            management()
    # 2
    elif a == 2:
        b = int(input("书名修改--请输入修改的图书的编号:"))
        if b in book_name:
            print('-' * 50)
            a = book_name.copy()
            a = a[b]["书名"]
            book_name[b]["书名"] = input(f"正在修改的书名为《{book_name[b]['书名']}》\n输入修改后的书名")
            print(f"名称修改成功  《{a}》的书名已更换为 《{book_name[b]['书名']}》")
            print("已经返回主管理界面")
            management()
        else:
            print(f"没有找到编号为 {b} 的书")
            print("已经返回主管理界面")
            management()

    elif a == 3:
        b = int(input("借入借出信息修改--请输入修改的图书的编号:"))
        if b in book_name:
            print('-' * 50, "")
            print(f"编号为 {b}-书名为{book_name[b]['书名']}的状态为{book_name[b]['是否借出']}")
            m = int(input("是否修改(1.是\t2.否):"))
            if m == 1:
                if book_name[b]['是否借出'] == False:
                    book_name[b]['是否借出'] = True
                    print(f"{book_name[b]['书名']}的状态已修改")
                    management()
                else:
                    book_name[b]['是否借出'] = False
                    print(f"《{book_name[b]['书名']}》的状态已修改为{book_name[b]['是否借出']}")
                    management()

            else:
                print("输入有误\t返回主界面")
                management()
        else:
            print(f"没有找到编号为 {b} 的书")
            print("已经返回主管理界面")
            management()
    #
    else:
        print("输入有误")
        print("已经返回主管理界面")
        management()


# 查找图书
def check_book():
    print("编号\t\t\t书名\t\t储存位置\t\t\t是否借出")
    print('-' * 50)
    for i in book_name:
        x = book_name[i]["书名"]
        y = book_name[i]["储存位置"]
        z = book_name[i]["是否借出"]
        print(i, x, y, z, sep='\t\t')
    b = int(input("请输入查找的图书的编号:"))
    if b in book_name:
        print('-' * 50, "\n", f"请确认你要查找编号为{b} 书名为《{book_name[b]['书名']}》 的书?")
        c = int(input("1.是\t2.否"))
        if c == 1:
            if book_name[b]['是否借出'] == False:
                print(f"《{book_name[b]['书名']}》 未借出")
                management()
            else:
                book_name[b]['是否借出'] = True
                print(f"《{book_name[b]['书名']}》 已经借出")
                management()
        elif c == 2:
            management()
        else:
            print("输入有误")
            management()
    else:
        print(f"没有编号为{b}的书")
        management()


# 管理界面(控制机器进入增删改查的操作中)  --> 0%
def management():
    print('-' * 50)
    print("欢迎来到南枫图书馆-主界面")
    a = int(input("1.添加图书\t2.删除图书\n3.修改图书\t4.查找图书\n5.退   出\n请输入你的操作:"))
    if a == 1:
        add_book(i)
    elif a == 2:
        del_book()
    elif a == 3:
        modify()
    elif a == 4:
        check_book()
    elif a == 5:
        print('-' * 50, "学习了一天  是时候放松一下啦", "加油哦", sep="\n")
        return
    else:
        print("输入有误,重新输入")
        management()


management()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值