python小程序吃饭系统

  • Post author:
  • Post category:python



# 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 版权协议,转载请附上原文出处链接和本声明。