python 小程序 挣钱-Python实现购物小程序

USER_FILE = "users.txt"GOODS_FILE= "goods.txt"

def rw_file(filename, content=0): #读和写文件

if content: #若content不为空,则判定为写文件

with open(filename,"w") as f:

f.write(str(content))else: #若content为空,则判定为读文件

with open(filename,"r") as f:

f=eval(f.read())returnfdefbuyer(username):

menu={"1": find,"2": buy,"3": get,"4": exit

}whileTrue:

choice= input("请输入你想执行的操作(输入【1】查看所有商品,输入【2】添加商品,输入【3】查询购物车和余额,输入【4】退出):")if choice not inmenu:print("输入错误,请重新输入")else:

menu[choice](username)defadmin():

menu={"1": addgoods,"2": recharge,"3": exit

}#role为1时,为管理员

whileTrue:

choice= input("请输入你想执行的操作(输入【1】添加商品,输入【2】充值,输入【3】退出):")if choice not inmenu:print("输入错误,请重新输入")else:

menu[choice]()def login(): #定义用户登录函数,根据用户角色提供指定操作

users =rw_file(USER_FILE)for i in range(3):

username= input("请输入账号:")

passwd= input("请输入密码:")if username in users and passwd == users[username]["passwd"] :if users[username]["role"] == "2": #如果role为2,则为普通用户

print("欢迎光临")

buyer(username)else:print("您已管理员身份登录")

admin( )else:print("账号或密码错误,还能尝试%d次"%(2-i))

i+= 1

def find(*args): #普通查看所有商品

with open("goods.txt") as f:print("所有商品和价格列表:", f.read())def buy(username): #普通用户添加商品到购物车

users =rw_file(USER_FILE)

goods_all=rw_file(GOODS_FILE)

goods= input("请输入你要添加的商品:")if goods ingoods_all:if goods not in users[username]["carts"]:if users[username]["money"] >=goods_all[goods]:

users[username]["carts"].append(goods)

users[username]["money"] =float("%.2f"%(users[username]["money"] -goods_all[goods]))

with open("users.txt","w") as f2:

f2.write(str(users))print("商品已成功添加到购物车")else:print("您的余额不足,请充值")else:print("购物车中已添加该商品,无需重复添加")else:print("您输入的商品不存在")def get(username): #普通用户查询购物车中的商品和余额

users =rw_file(USER_FILE)if len(users[username]["carts"]) >0:print("您的购物车中已有商品:{goods}".format(goods = users[username]["carts"]))else:print("您还未添加任何商品")print("您的余额:{money}".format(money=users[username]["money"]))def addgoods( ): #管理员添加商品

goods_all =rw_file(GOODS_FILE)

goods_name= input("请输入商品名称:")

goods_price= input("请输入商品价格:")if len(goods_name.strip()) !=0:if goods_name not ingoods_all:ifisprice(goods_price):

goods_all[goods_name]= float("%.2f"%float(goods_price))

rw_file(GOODS_FILE,goods_all)print("商品添加成功")else:print("商品价格必须是正数,请重新输入")else:print("该商品已存在,无需重复添加")else:print("商品名称不能为空,请重新输入")def recharge(): #管理员给指定账号充值

users =rw_file(USER_FILE)

username= input("请输入要充值的账号:")

money= input("请输入要添加的金额:")if username in users andisprice(money):

users[username]["money"] = float("%.2f"%(users[username]["money"] +float(money)))

rw_file(USER_FILE, users)print("操作成功")else:print("输入账号或金额有误,请重新输入")def isprice(price): #判断金额是否有效

if price.count(".") == 1 and price.split(".")[0].isdigit() and price.split(".")[1].isdigit():returnTrueelif price.count(".") == 0 andprice.isdigit():returnTrueelse:returnFalse

login()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值