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

未完待续的小程序

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

在同目录下生成程序

1.程序文件

run.py

from login import loginfrom register import registerfrom balance_enquiry import balance_enquiryfrom top_up import top_upmsg_dict ={ '1':login, '0':register, '2':top_up, '3':balance_enquiry, 'q':'quit'}Login_name = [None]while True: print("33[0;31;44mtt杨大爷超市欢迎您ttt33[5m") print(38*'-') print("33[0;30;42mtt输入0进入注册界面ttt33[5m") print("33[0;30;42mtt输入1进入登入界面ttt33[5m") print("33[0;30;42mtt输入2进入充值界面ttt33[5m") print("33[0;30;42mtt输入3进入余额查询界面tt33[5m") print("33[0;30;42mtt输入q退出程序 tttt33[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:0n')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}n')

3..功能模块

1.登入

login.py

import open_mode#Login_successful[0]来判断是否登入成功Login_name = [None]def login(): print("33[0;40;46mtt欢迎使用登入功能ttt33[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('请输入你的名字n') if user_name =='q': return False if user_name not in user_dict: print('账号不存在请重新登入') continue print(38*'-') user_pwd = input('请输入你账号密码n') 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;46mtt欢迎使用登入功能ttt33[0m") print(f'账号{Login_name[0]}已经登入') chiose = input('输入1当前账号退出并退出登入程序n' '输入2当前账号退出并重新登入程序n' '输入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_modedef register(): while True: print(38*'-') print("33[0;40;46mtt注册功能ttt33[0m") user_name = input('请输入注册账号(退出程序输入q)n' '(账号大于6位小于9位由纯字母组成)n' ) 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('请输入密码n' '(密码由纯数字组成)n') 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_modeimport 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;46mtt输入0是草泥马100元tttt33[5m") print("33[0;30;46mtt输入1是《nick写真集》1元ttt33[5m") print("33[0;30;46mtt输入2是奥特曼玩偶50元 ttt33[5m") print("33[0;30;46mtt输入3是钢铁侠真人套装10000元 t33[5m") print("33[0;30;46mtt输入4是《产品经理强哥自传》18888元33[5m") print("33[0;30;46mtt输入5是《马叉虫是如何炼成的》888元33[5m") print("33[0;30;46mtt输入6是《YwY自传》8888888888888元33[5m") print("33[0;30;46mtt输入q退出程序ttttt33[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结算n' '输入1继续购买n' '输入2清空购物车继续购买n' '输入3清空购物车退出n' '请输入您的选择n' '').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'ttttt一共{money}元') print("-" * 50) print('欢迎下次光临')

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

balance_enquiry.py

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

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

top_up.py

def top_up(): pass

相关文章