• 从7点到9点写的小程序(用了模块导入,python终端颜色显示,用了点局部和全局可变和不可变作用域,模块全是自定义)


    未完待续的小程序

    要是能做的好看为啥不做的好看

    在同目录下生成程序

    1.程序文件

    run.py

    from login import login
    from register import register
    from balance_enquiry import balance_enquiry
    from top_up import top_up
    msg_dict ={
        '1':login,
        '0':register,
        '2':top_up,
        '3':balance_enquiry,
        'q':'quit'
    }
    Login_name = [None]
    while True:
        print("33[0;31;44m		杨大爷超市欢迎您			33[5m")
        print(38*'-')
        print("33[0;30;42m		输入0进入注册界面			33[5m")
        print("33[0;30;42m		输入1进入登入界面			33[5m")
        print("33[0;30;42m		输入2进入充值界面			33[5m")
        print("33[0;30;42m		输入3进入余额查询界面		33[5m")
        print("33[0;30;42m		输入q退出程序 				33[5m")
        print(38 * '-')
        user_shopping_chiose = input('请输入你要选择的功能')
        if user_shopping_chiose not in msg_dict:
            print('请好好输入')
            continue
        elif user_shopping_chiose=='q':
            print('再见')
            break
        msg_dict[user_shopping_chiose]()
    

    2.自制文件读取模块

    open_mode.py

    def read_all(filename):
        with open (filename,'a+',encoding='utf8') as fr :
            fr.seek(0)
            res = fr.read()
        return res
    
    
    #文件信息格式为info_list=[name:pwd:aggregate score:The remaining points:freeze0为解冻,1为冻结:账户余额 ]
    #info_dict[name:[pwd:aggregate score:The remaining points:freeze0为解冻,1为冻结]]
    def to_info_dict(filename):
        info_dict = dict()
        with open (filename,'a+',encoding='utf8') as fr :
            fr.seek(0)
            for info in fr:
                info_list = info.strip().split(':')
                name = info_list[0]
                info_dict[name] = info_list[1:]
        return info_dict
    #账号:密码:总积分:剩余积分:是否为冻结0为未冻结,1位冻结:账户余额
    def add_info(user_name,user_pwd):
        with open('用户注册信息.txt', 'a', encoding='utf8') as fw:
            fw.write(f'{user_name}:{user_pwd}:0:0:0:0
    ')
    
    
    def add_purchase_history(user,goods,nums,price,Discounted_price):
        with open('购买记录.txt', 'a', encoding='utf8') as fw:
            fw.write(f'{user}:{goods}:{nums}:{price}:{Discounted_price}
    ')
    
    

    3..功能模块

    1.登入

    login.py

    import open_mode
    #Login_successful[0]来判断是否登入成功
    Login_name = [None]
    def login():
        print("33[0;40;46m		欢迎使用登入功能			33[0m")
        info = open_mode.read_all()
        if info == '':
            print('无人注册会员请先注册')
            return
        user_dict = open_mode.to_info_dict('用户注册信息.txt')
        if not Login_name[0]:
            while True:
                print(38*'-')
                print('输入q可以退出登入程序')
                user_name = input('请输入你的名字
    ')
                if user_name =='q':
                    return False
                if user_name not in user_dict:
                    print('账号不存在请重新登入')
                    continue
                print(38*'-')
                user_pwd = input('请输入你账号密码
    ')
                if user_pwd != user_dict[user_name][0]:
                    print('密码错误请重新登入')
                    continue
                elif user_dict[user_name][3]=='1':
                    print(f'该账号{user_name}已经被冻结不能使用')
                    continue
                print('登入成功')
                Login_name[0] = user_name
                return  True
        while True:
            print(38*'-')
            print("33[0;40;46m		欢迎使用登入功能			33[0m")
            print(f'账号{Login_name[0]}已经登入')
            chiose = input('输入1当前账号退出并退出登入程序
    '
                           '输入2当前账号退出并重新登入程序
    '
                           '输入Q退出当前程序')
            print(38*'-')
            if chiose == '1':
                Login_name[0] = None
                return False
            elif chiose =='2':
                Login_name[0] = None
                login()
                return
            elif chiose =='Q':
                return True
            else:
                print('请正确输入')
            
    

    2.注册

    register.py

    import open_mode
    def register():
        while True:
            print(38*'-')
            print("33[0;40;46m		注册功能			33[0m")
            user_name = input('请输入注册账号(退出程序输入q)
    '
                              '(账号大于6位小于9位由纯字母组成)
    '
                             )
            if user_name=='q':
                return False
            elif len(user_name.replace(' ','')) != len(user_name):
                print('输入的账号有空格请重洗输入')
                continue
            elif len(user_name) < 6:
                print('输入账号太短不能小于6位')
                continue
            elif len(user_name) > 9:
                print('输入账号太长不能大于9位')
                continue
            elif not user_name.isalpha():
                print('账号有字母注册')
                continue
            print(38*'-')
            user_pwd = input('请输入密码
    '
                        '(密码由纯数字组成)
    ')
            if len(user_name.replace(' ','')) != len(user_name):
                print('输入的密码有空格请重洗输入')
                continue
            elif not user_pwd.isdigit():
                print('密码要纯数字')
            else:
                info = open_mode.read_all('用户注册信息.txt')
                if user_name in info:
                    print('账号存在请重新注册')
                    continue
                open_mode.add_info(user_name,user_pwd)
                print('注册成功')
                print(38*'-')
                return True
    

    3.购物

    shopping.py

    import  open_mode
    import  login
    #Login_successful[0]来判断是否登入成功
    Login_name = [None]
    
    goods_dict = {
        '0':['草泥马',100],
        '1':['《nick写真集》',1],
        '2':['奥特曼玩偶',50],
        '3':['钢铁侠真人套装',10000],
        '4':['《产品经理强哥自传》',188],
        '5':['《马叉虫是如何炼成的》',888],
        '6':['《YwY自传》',8888888888888]
    }
    
    user_car = dict()
    
    def shopping():
        a = '0'
        money = 0
        if not Login_name[0]:
            print('请先登入')
            return
        while a == '0':
            print(38*'-')
            print("33[0;30;46m		输入0是草泥马100元				33[5m")
            print("33[0;30;46m		输入1是《nick写真集》1元			33[5m")
            print("33[0;30;46m		输入2是奥特曼玩偶50元 			33[5m")
            print("33[0;30;46m		输入3是钢铁侠真人套装10000元 	33[5m")
            print("33[0;30;46m		输入4是《产品经理强哥自传》18888元33[5m")
            print("33[0;30;46m		输入5是《马叉虫是如何炼成的》888元33[5m")
            print("33[0;30;46m		输入6是《YwY自传》8888888888888元33[5m")
            print("33[0;30;46m		输入q退出程序					33[5m")
            print(38 * '-')
            goods_chiose = input('请输入你要购买的商品')
            if goods_chiose not in goods_dict:
                print('请好好输入')
                continue
            elif goods_chiose=='q':
                return
            else:
                a = '2'
            while True:
                goods_nums = input('请输入商品的数量')
                if not goods_nums.isdigit():
                    print('请输入数字')
                break
            goods = goods_dict[goods_chiose][0]
            price = goods_dict[goods_chiose][1]*int(goods_nums)
    
            #生成购物车
            global user_car
            if goods not in user_car:
                user_car[goods] = [goods_nums,price]
            else:
                user_car[goods][0] += goods_nums
                user_car[goods][1] += price
            judge = 1
            while judge == 1:
                print(50 * '-')
                jump = input('输入0结算
    '
                             '输入1继续购买
    '
                             '输入2清空购物车继续购买
    '
                             '输入3清空购物车退出
    '
                             '请输入您的选择
    '
                             '').strip()
                if jump not in ['0','1','2','3']:
                    print('请正确输入0,1,2,3中任意数字')
                    continue
                if jump == '1':
                    judge = 4  # 跳出功能选择
                    a = '0'  # 继续购买
                elif jump == '2':
                    user_car = dict()  # 清空购物车
                    judge = 4  # 跳出功能选择
                    a = '0'  # 继续购买
                elif jump == '3':
                    user_car = dict()
                    judge = 4  # 跳出功能选择
                    print("-" * 50)
                    print('欢迎下次光临')
                elif jump == '0':
                    judge = 4  # 跳出功能选择
                    print("-" * 50)
                    #打印内容
                    for user_car_info in user_car.items():
                        print(f'{user_car_info[0]}{user_car_info[1][0]}个 合计{user_car_info[1][1]}元')
                        money += int(user_car_info[1][1])
                    print(f'					一共{money}元')
                    print("-" * 50)
                    print('欢迎下次光临')
    
    

    4.余额查询(学了js模块再该)

    balance_enquiry.py

    def balance_enquiry():
        pass
    

    5.4.充值(学了js模块再该)

    top_up.py

    def top_up():
        pass
    
  • 相关阅读:
    Redis持久化机制
    Java动态代理
    FFmpeg视频处理
    Redis集群
    解决vscode无法提示golang的问题
    解决vscode无法安装golang相关插件的问题
    近期小结
    近期小结
    稍稍解读下ThreadPoolExecutor
    响应式编程笔记三:一个简单的HTTP服务器
  • 原文地址:https://www.cnblogs.com/pythonywy/p/10981953.html
Copyright © 2020-2023  润新知