疯狂榨汁机 #python项目 #对象语法训练

疯狂榨汁机

  • 一、成果示例
  • 二、演练目标
    • 情景事件
    • 需求分析
  • 三、实现步骤
    • 配置main
    • 配置body文件
    • main代码完善
  • 四、代码展示
    • main文件
    • body文件

一、成果示例

疯狂榨汁机 #python项目 #对象语法训练_第1张图片

二、演练目标

情景事件

  1. 在一次宴会上,Tom提出:我们来玩榨汁机游戏吧
  2. 说着,他拿出一个疯狂榨汁机(500g)
  3. 拿出一个转盘,转盘选出哪个食物,就将哪个食材放进去,放三次
大蒜 50g 豆汁 30g 鲱鱼罐头 70g
发酵鲨鱼肉 100g 活蛆乳酪 80g 童子尿原汤 120g
  1. 坐在你对面的先生有些惶恐,哦!轮到他遭殃了,现在是你的时间!

需求分析

疯狂榨汁机 #python项目 #对象语法训练_第2张图片

三、实现步骤

  1. 准备两个文件,一个主文件main.py。一个存放类body.py。

配置main

  1. 主文件中,需要传入食品,写入多个调用食品的实例(实例的类之后再写)
  2. 把食品的数据存入一个列表中,然后用随机函数选择
  3. 建立一个榨汁机实例,传入参数(实例的类之后再写)
  4. 使用榨汁机实例的榨汁函数(这个函数也之后再写)
food0 = body.Food("大蒜", 50)
food1 = body.Food("豆汁", 30)
food2 = body.Food("鲱鱼罐头", 70)
food3 = body.Food("发酵鲨鱼肉", 100)
food4 = body.Food("活蛆乳酪", 80)
food5 = body.Food("童子尿原汤", 120)

# 拿出榨汁机
juicer = body.Juicer("疯狂", 500, food_args)

# TODO 选择食物

# 开始榨汁
juicer.juicing()

配置body文件

(其实以下代码完全可以用列表嵌套元组完成,这里是为了训练语法)

  1. 写一个食物的类,接收名称和重量。并返回名称和重量
  2. 发现初始化函数不能有返回值,于是定义一个新函数
  3. 写一个榨汁机的类,接收品牌,容积
  4. 选择要榨汁的食物
  5. 计算剩余空间
import random

class Food:

    def __init__(self, f_name, f_weigth):
        """添加食物对象
            f_name: 食物名
            f_weigth: 食物重量
            return: 返回食物名,食物重量
        """

        self.f_name = f_name
        self.f_weigth = f_weigth

        print("【%s】 已添加, 它的重量是 %s" % (self.f_name, f_weigth))
    


class Juicer: 

    def __init__(self, j_brand, j_cubage):
        """
        j_brand: 品牌
        j_cubage: 容积
        j_food_args: 食物列表
        """

        self.j_brand = j_brand
        self.j_cubage = j_cubage
        
        print("*" * 50)
        print("tom笑嘻嘻地拿出【%s牌】榨汁机“它的容量有可有 %s g”呢!让我们开始吧!" % (self.j_brand, self.j_cubage))
        print("*" * 50)

    def juicing(self):
        "添加食材,开始榨汁"

        for w in self.j_food_args:
            self.j_cubage -= w[1]  # w是每一个食品的元组,w[1]是重量

            print("----->【%s 】现已加入豪华午餐<-----" % w[0])

        print("食物添加完毕,此时你按下了按钮,榨汁机开始工作了。榨汁机只剩 %s g的空间了!" % self.j_cubage)

    def random_food(self, food0, food1, food2, food3, food4, food5):
        "选择三个随机食物"

        food_list = [
            (food0.f_name, food0.f_weigth),
            (food1.f_name, food1.f_weigth),
            (food2.f_name, food2.f_weigth),
            (food3.f_name, food3.f_weigth),
            (food4.f_name, food4.f_weigth),
            (food5.f_name, food5.f_weigth)
        ]

        food_arg0 = random.choice(food_list)
        food_arg1 = random.choice(food_list)
        food_arg2 = random.choice(food_list)

        self.j_food_args = [food_arg0, food_arg1, food_arg2]

    def __del__(self):
        print("你看着对面的男人,喝下了你精心调配的美味。下一个品尝的,就是你了!")


# 选择三个随机食物
food_list = [
    food0.return_food(),
    food1.return_food(),
    food2.return_food(),
    food3.return_food(),
    food4.return_food(),
    food5.return_food()
]

food_arg0 = random.choice(food_list)
food_arg1 = random.choice(food_list)
food_arg2 = random.choice(food_list)

food_args = [food_arg0, food_arg1, food_arg2]

main代码完善

  • TODO处替换为:
juicer.random_food(food0, food1, food2, food3, food4, food5)

四、代码展示

main文件

import body, random

food0 = body.Food("大蒜", 50)
food1 = body.Food("豆汁", 30)
food2 = body.Food("鲱鱼罐头", 70)
food3 = body.Food("发酵鲨鱼肉", 100)
food4 = body.Food("活蛆乳酪", 80)
food5 = body.Food("童子尿原汤", 120)

# 拿出榨汁机
juicer = body.Juicer("疯狂", 500)

# 选出三种食物
juicer.random_food(food0, food1, food2, food3, food4, food5)

# 开始榨汁
juicer.juicing()

body文件

import random

class Food:

    def __init__(self, f_name, f_weigth):
        """添加食物对象
            f_name: 食物名
            f_weigth: 食物重量
            return: 返回食物名,食物重量
        """

        self.f_name = f_name
        self.f_weigth = f_weigth

        print("【%s】 已添加, 它的重量是 %s" % (self.f_name, f_weigth))
    


class Juicer: 

    def __init__(self, j_brand, j_cubage):
        """
        j_brand: 品牌
        j_cubage: 容积
        j_food_args: 食物列表
        """

        self.j_brand = j_brand
        self.j_cubage = j_cubage
        
        print("*" * 50)
        print("tom笑嘻嘻地拿出【%s牌】榨汁机“它的容量有可有 %s g”呢!让我们开始吧!" % (self.j_brand, self.j_cubage))
        print("*" * 50)

    def juicing(self):
        "添加食材,开始榨汁"

        for w in self.j_food_args:
            self.j_cubage -= w[1]  # w是每一个食品的元组,w[1]是重量

            print("----->【%s 】现已加入豪华午餐<-----" % w[0])

        print("食物添加完毕,此时你按下了按钮,榨汁机开始工作了。榨汁机只剩 %s g的空间了!" % self.j_cubage)

    def random_food(self, food0, food1, food2, food3, food4, food5):
        "选择三个随机食物"

        food_list = [
            (food0.f_name, food0.f_weigth),
            (food1.f_name, food1.f_weigth),
            (food2.f_name, food2.f_weigth),
            (food3.f_name, food3.f_weigth),
            (food4.f_name, food4.f_weigth),
            (food5.f_name, food5.f_weigth)
        ]

        food_arg0 = random.choice(food_list)
        food_arg1 = random.choice(food_list)
        food_arg2 = random.choice(food_list)

        self.j_food_args = [food_arg0, food_arg1, food_arg2]

    def __del__(self):
        print("你看着对面的男人,喝下了你精心调配的美味。下一个品尝的,就是你了!")

你可能感兴趣的:(#,Python项目,python,对象语法训练,python项目,详细步骤)