# 1.做一个模拟吃饭的小程序,吃5天,钱不够了或者5天到了就结束程序。
# 2.用户录入商品的名称和价格,将商品的名称和价格存储到一个列表或者字典中。可以做一个死循环,当用户输入over的时候就结束循环,停止录入之后打印列表或者字典中的信息。
# 3.随机出一道推荐菜,提示:今日特价菜为XXX打8折。
# 4.到此商品列表和特价菜都有了。现在开始吃饭,总共吃5天,每天都有特价菜。推荐菜都是打8折。
# 5.定义一个金钱变量。
# 6.第一天吃饭:让用户在商品列表中选择要购买的商品,每个商品都有编号。输入对应的编号检测钱是否够吃饭,够就扣掉这个钱,不够就重新选择。当吃完5天或者没钱吃饭之后结束程序。在最后输出每天吃饭的商品信息和价格,输出还剩多少钱
#商店
#属性,商品,价格
#方法:卖 录入商品
#商品
#属性:名称,价格
#用户
#属性:金钱
import random
class Goods(object): #商品函数,储存商品信息
def __init__(self):
self.name = ''
self.price = 0.0
class Shop(object):
dict1 = {} #储存商品编号和信息的字典
i = 1 #商品编号
list1 = [] #储存每天都吃了什么,最后遍历输出
def log_dict1(self): #录入商品函数
while 1:
good1 = Goods()
a = input("请输入商品名称:(输入over结束录入)")
if a == "over":
print("录入结束,当前已有商品信息如下")
for x in Shop.dict1.keys():
print("商品编号:%d商品名:%s,价格%.2f"%(x,Shop.dict1[x].name,Shop.dict1[x].price))
return -1
b = float(input("请输入商品价格:"))
good1.name = a
good1.price = b
Shop.dict1[Shop.i] = good1
Shop.i += 1
print("录入成功,商品的名称是:%s,商品的价格是%.2f"%(a,b))
def sell(self,per): #主要函数,商品特价,价格恢复,扣钱等
a = random.choice(list(Shop.dict1.keys()))
Shop.dict1[a].price = Shop.dict1[a].price *0.8
isOK = True #判断是否有钱吃饭
for x in Shop.dict1.keys():
if per.money > Shop.dict1[x].price:
isOK = False
if isOK == True:
print("您的钱不够吃饭了,挑战失败")
print("您剩余金钱为:%.2f" % per.money)
exit()
print("今日特价菜为%s,价格打8折后为%.2f元"%(Shop.dict1[a].name,Shop.dict1[a].price))
while 1:
b = int(input("请输入你要购买的商品编号:"))
if b in Shop.dict1.keys():
if Shop.dict1[b].price <= per.money:
per.money -= Shop.dict1[b].price
print("成功吃了一顿饭,还剩%.2f元钱"%(per.money))
Shop.list1.append(Shop.dict1[b])
Shop.dict1[a].price = Shop.dict1[a].price / 0.8
return -1
else:
print("您的余额不足,您有%.2f元钱,请根据您的金钱进行合理消费"%(per.money))
print("请重新选择你要吃的饭:")
class Person(object): #人类,储存总的金钱
def __init__(self):
self.money = 0
def main(): #函数主程序
per1 = Person()
per1.money = float(input("请输入来进行吃饭挑战人带的钱数"))
shop1 = Shop()
shop1.log_dict1()
for x in range(5):
print("-------------------------------第%d天-----------------------------------------"%(x+1))
shop1.sell(per1)
else:
print("挑战成功,您每天吃饭信息如下")
for y in range(5):
print("第%d天,吃的是%s,价格为%.2f"%(y+1,Shop.list1[y].name,Shop.list1[y].price,))
print("您剩余金钱为:%.2f"%per1.money)
if __name__ =="__main__": #判断是否被引用
main()
版权声明:本文为luslin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。