python新手图书馆里系统

记录自己得python学习之路,也希望帮助新手小白能更快得学习python,那就 直接上代码 ,我只是简单的写了点注释。

import time,random

#  ----------------  书籍信息列表  -------------------
book_list = [
        {'book_name':"天龙八部",'author':"金庸",'type':"武侠",'price':"20"},
        {'book_name':"还珠格格",'author':"琼瑶",'type':"古装言情",'price':"10"},
        {'book_name':"斗破苍穹",'author':'天蚕土豆','type':'玄幻','price':'15'},
        {'book_name':"大主宰",'author':'天蚕土豆','type':'玄幻','price':'16'}]

#  ------------ 已冻结账号  -------------
frozen_user = [{'username': 'dabiao', 'password': 'zxcv123...456','tight_lock':'64545431','secret_key': '4961002','error_count':3}]

#  ------------ 正常用户列表 ---------------
user_list = [{'username':'admin','password':'admin123...','tight_lock':'64541554','secret_key':'4961007','error_count':0},
             {'username': 'enguang', 'password': 'qwer123456...','tight_lock':'87646155','secret_key': '4961046','error_count':0}]

 # -----------------初级密码----------------

def primary_pwd(password):
    len_pwd = len(password)
    if (password.isdigit() or password.isalpha()) or len_pwd <= 8:
        return False
    else:
        return True

# -----------------中级密码------------------

def intermediate_pwd(password):
    if password[0].isdigit():
        return False
    else:
        num_num = 0
        letter_num = 0
        len_pwd = len(password)
        for i in password:
            if i.isdigit():
                num_num += 1
            if i.isalpha():
                letter_num += 1
        symbol_num = len_pwd - num_num - letter_num
        if symbol_num>=0:
            if num_num > 0 or letter_num > 0:
                return True
            else:
                return False

#-----------------高级密码------------------

def advancedd_pwd(password):
    num_num = 0
    letter_num = 0
    len_pwd = len(password)
    for i in password:
        if i.isdigit():
            num_num += 1
        if i.isalpha():
            letter_num += 1
    symbol_num = len_pwd - num_num - letter_num
    if symbol_num >0:
        if num_num > 0 and letter_num > 0 and len_pwd > 16:
            return True
        else:
            return False

 #  --------------------判断密码-------------

def check_pwd(password):
    if primary_pwd(password):
        if advancedd_pwd(password):
            time.sleep(1.5)
            print('您的密码安全性等级为高,可以使用,非常棒!')
            return True
        else:
            if intermediate_pwd(password):
                time.sleep(1.5)
                print('您的密码安全等级为中,可以使用,如果需要安全性更高的密码请前往系统中修改密码!')
                return True
            else:
                print('密码不能是数字,不能用全符号,请重新输入密码!')
                return False
    else:
        print('密码等级太低,不能使用,请重新输入密码!')
        return False

# ----------------  注册块    --------------

def register(username,password):
    print('信息安全性检测中...')
    time.sleep(1.5)
    for i in user_list:
        if i['username'] == username:
            print('账号已存在,请重新输入!')
            print('-' * 40)
            return False
    else:
        if check_pwd(password):
            password2 = input('请再次输入密码:')
            if password2 == password:
                secret_lock = random.randint(10000000,99999999)   #  每个账号生成    密锁和密钥   用来解冻账号
                secret_key = random.randint(1000000,9999999)
                user_NPSSC = {'username':username,'password':password,'secret_lock':secret_lock,'secret_key':secret_key,'error_count':'0'}   #  NPSSC  用户名字密码密锁密钥错误次数开头
                user_list.append(user_NPSSC)
                print('您的密锁是%d,密钥是%d。'%(secret_lock,secret_key))
                print(user_list)
                print('注册中...')
                time.sleep(1)
                print('注册成功,请记好您的账号密码,密锁和密钥是您冻结账号和解冻账号的条件,请勿告诉他人!')
                print('-' * 40)
                return True
            else:
                print('两次输入的密码不一致,请重新输入!')
                print('-' * 40)
                return False

#  ---------------  登陆块   ---------------

def login(username,password):
    print('登陆中...')
    time.sleep(1.5)
    for i in user_list:
        if i['username'] == username and i['password'] == password:
            print('登陆成功!')
            print('-' * 40)
            return True
    else:
        print('登陆失败!')
        for i in user_list:
            if i['username'] == username:
                i['error_count'] += 1
                print('第%d次输错密码,剩余%d次机会,剩余次数为0即冻结账号!' % (i['error_count'],3-i['error_count']))
                print('-' * 40)
            if i['error_count'] == 3:
                print('账号冻结中...')
                time.sleep(1.5)
                user_list.remove(i)
                frozen_user.append(i)
                print('账号已冻结,如需解冻请前往解冻系统!')
                print('-' * 40)
                print(user_list)
                print(frozen_user)

#  ---------------  解冻账号 ---------------

def thaw_account(tight_lock,secret_key):
    print('密锁密钥验证中...')
    time.sleep(1.5)
    for i in frozen_user:
        if i['tight_lock'] == tight_lock and i['secret_key'] == secret_key:
            i['error_count'] = 0
            print('验证成功,正在解冻...')
            time.sleep(1.5)
            frozen_user.remove(i)
            user_list.append(i)
            print('您的账号密码是%s,%s。'%(i['username'],i['password']))
            print('账号解冻成功,请文明使用账号!')
            print('-' * 40)
            return True
    else:
        print('凭证不正确,请重新输入!')
        print('-' * 40)
        return False

#  ---------------  添加书籍  --------------

def add_book():
    bookname = input('请输入需要添加书籍的名字:')
    for i in book_list:
        if i['book_name'] == bookname:
            print('不可添加,该书籍已存在!')
            print('-'*40)
            return False
    else:
        choice = input('请选择是否输入作者名:')
        if choice == '1':
            author = input('请输入作者名字:')
            type = input('请输入书籍类型:')
            price = input('请输入书籍价格:')
            book_NATP = {'book_name': bookname, 'author': author, 'type': type, 'price': price}  # book_NATP 书名作者名类型价格首字母
            book_list.append(book_NATP)
            print('书籍添加中...')
            time.sleep(1.5)
            print('书籍添加成功!')
            print('-' * 40)
            return True
        elif choice == '2':
            type = input('请输入书籍类型:')
            price = input('请输入书籍价格:')
            book_NATP = {'book_name': bookname, 'author': '佚名', 'type': type,'price': price}  # book_NATP 书名作者名类型价格首字母
            book_list.append(book_NATP)
            print('书籍添加中...')
            time.sleep(1.5)
            print('书籍添加成功!')
            print('-' * 40)
            return True
        else:
            print('指令输入错误,请重新输入!')
            print('-'*40)
            return False

# ----------------  查看书籍信息  -----------

def find_book(choice):
    if choice == '1':                 #  查看单本书籍信息
        bookname = input('请输入需要查看的书籍名:')
        print('书籍信息查询中...')
        time.sleep(1.5)
        for i in book_list:
            if bookname == i['book_name']:
                print('书名:%s,作者:%s,类型:%s,价格:%s。'%(i['book_name'],i['author'],i['type'],i['price']))
                print('-' * 40)
                return True
        else:
            print('系统中不存在该书籍哟!')
            print('-' * 40)
            return False

    elif choice == '2':       #  查询所有书籍信息
        for i in book_list:
            print('书名:%s,作者:%s,类型:%s,价格:%s。' % (i['book_name'], i['author'], i['type'], i['price']))
            time.sleep(0.5)
        print('-' * 40)
        time.sleep(1)

    elif choice == '3':   #   按照书籍类型查找
        book_type = input('请输入要查找的书籍类型:')
        print('书籍信息查询中...')
        time.sleep(1.5)
        flag = 0
        for i in book_list:
            if i['type'] == book_type:
                print('书名:%s,作者:%s,类型:%s,价格:%s。' % (i['book_name'], i['author'], i['type'], i['price']))
                flag = 1
        print('-' * 40)
        if flag == 0:
            print('系统中不存在该类型的书籍哟!')
            print('-' * 40)
            return False

    elif choice == '4':   #   按照书籍作者查找
        author = input('请输入要查找作者:')
        print('书籍信息查询中...')
        time.sleep(1.5)
        flag = 0
        for i in book_list:
            if i['author'] == author:
                print('书名:%s,作者:%s,类型:%s,价格:%s。' % (i['book_name'], i['author'], i['type'], i['price']))
                flag = 1
        print('-' * 40)
        if flag == 0:
            print('系统中不存在该作者的书籍哟!')
            print('-' * 40)
            return False

    elif choice == '5':    #  按照价格区间查找
        low_price = int(input('请输入最低价格:'))
        high_price = int(input('请输入最高价格:'))
        flag = 0
        print('书籍信息查询中...')
        time.sleep(1.5)
        for i in book_list:
            if low_price <= int(i['price']) <= high_price:
                print('书名:%s,作者:%s,类型:%s,价格:%s。' % (i['book_name'], i['author'], i['type'], i['price']))
                flag = 1
        print('-' * 40)
        if flag == 0:
            print('系统中不存在该价格区间的书籍哟!')
            print('-' * 40)
            return False
    else:
        print('指令输入错误!')
        print('-' * 40)
        return False

#  ---------------  删除书籍信息  ------------

def del_book(bookname):
    print('书籍信息查询中...')
    time.sleep(1.5)
    for i in book_list:
        if i['book_name'] == bookname:
            print(i)
            choice = input('请选择是否删除:')
            if choice =='1':
                book_list.remove(i)
                print('书籍删除中...')
                time.sleep(1.5)
                print('书籍删除成功!')
                print('-' * 40)
                return True
            if choice == '2':
                print('放弃删除!')
                print('-' * 40)
                break
    else:
        print('系统中不存在该书籍哟!')
        print('-' * 40)
        return False

#  ---------------  修改书籍信息  ------------

def modify_book(bookname):
    print('书籍信息查询中...')
    time.sleep(1.5)
    for i in book_list:
        if i['book_name'] == bookname:
            print('书名:%s,作者名:%s,类型:%s,价格:%s。'%(i['book_name'],i['author'],i['type'],i['price']))
            rbookname = input('请输入修改后的书名:')
            rauthor = input('请输入修改后的作者名:')
            rtype = input('请输入修改后的类型:')
            rprice = input('请输入修改后的价格:')
            print('书籍信息修改中...')
            time.sleep(1.5)
            i['book_name'] = rbookname
            i['author'] = rauthor
            i['type'] = rtype
            i['price'] = rprice
            print('书籍信息修改保存成功!')
            print('-' * 40)
            return True
    else:
        print('系统中不存在该书籍哟!')
        print('-' * 40)
        return False

#  ---------------  修改登陆密码  -----------

def change_pwd(username,password):
    flag = 0
    for i in user_list:
        if i['username'] == username and i['password'] == password:
            new_pwd1 = input('请输入新密码:')
            if check_pwd(new_pwd1):
                new_pwd2 = input('请再次输入密码:')
                if new_pwd1 == new_pwd2:
                    print('密码修改中...')
                    i['password'] = new_pwd1
                    time.sleep(1.5)
                    print('密码修改成功,请保管好您的密码!')
                    print('-'*40)
                    flag = 1
                else:
                    print('两次输入的密码不一致!')
                    print('-' * 40)
                    return False
    if flag == 0:
        print('用户信息不存在!')
        print('-' * 40)
        return False

#  ---------------  注册登陆解锁  ------------

def reg_log():
    while 1:
        choice = input('请选择操作,1:新用户注册,2:老用户登陆,3:账号解冻,0:退出系统。:')
        if choice == '1':
            register(username=input('请输入注册用户名:'),password=input('请输入注册密码:'))
            continue
        elif choice == '2':
            if login(username=input('请输入用户名:'),password=input('请输入密码:')):
                break
        elif choice == '3':
            thaw_account(tight_lock = input('请输入唯一密锁:'),secret_key = input('请输入唯一密钥:'))
            continue
        elif choice == '0':
            print('期待您的下次使用!')
            quit()        #  不能使用break 如果使用会退出主界面后执行功能界面。

#  ----------------  主函数  ----------------

def run():
    print('-'*37)
    print('欢迎来到图书管理系统'.center(30,'-'))
    print('1.新用户注册'.center(34,'-'))
    print('2.老用户登陆'.center(34,'-'))
    print('3.  账号解冻'.center(34,'-'))
    print('0.  退出系统'.center(34,'-'))
    print('-' * 37)
    reg_log()
    while 1:
        choice = input('请输入指令操作,1:添加书籍,2:查看书籍,3:删除书籍,4:修改书籍,5:改密,0:退出:')
        if choice == '1':
            add_book()
        elif choice == '2':
            find_book(choice=input('请选择查看方式:'))
        elif choice == '3':
            del_book(bookname=input('请输入需要删除的书籍名:'))
        elif choice == '4':
            modify_book(bookname=input('请输入想要修改的书籍:'))
        elif choice == '5':
            change_pwd(username=input('请输入用户名:'), password=input('请输入密码:'))
        elif choice == '0':
            print('期待您的下次使用!')
            time.sleep(1.5)
            print('-' * 40)
            break
        else:
            print('指令错误,请重新输入!')
            print('-' * 40)

#  ----------------  主函数  ----------------

if __name__ == '__main__':
    run()





  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值