Python面向对象作业(修改优化后)

Python面向对象作业

1、作业1
"""
作业1
玩个特别无聊的游戏,猜数字。
玩家输入一个数字与
计算机随机生成的数字作对比
当两个值相等时,则说明用户猜对了
注意:外部不能获取到计算机随机生成的值
"""
import random
class GuessNum:
    def get_num(self):
        n = random.randint(1, 100)
        num = int(input("请输入一个(1-100)之间的数字猜字:"))
        if num == n:
            print(f"恭喜你猜对了,是:{n}")
        else:
            while num != n:
                if num > n:
                    print(f"数大了,应该是{n}")
                    num = int(input("请重新输入:"))
                else:
                    print(f"数小了,应该是{n}")
                    num = int(input("请重新输入:"))
            if num == n:
                print(f"恭喜你猜对了,是:{n}")

        print("游戏结束")


s = GuessNum()
s.get_num()
作业1优化后代码
import random


class GuessNum(object):
    def __init__(self):
        self.__rand = random.randint(1, 10)
        print(self.__rand)

    def guess_num(self):
        num = int(input("请输入1-10的数字:"))
        while True:
            if num == self.__rand:
                print(f"恭喜你猜对了!他是:{self.__rand}")
                break
            else:
                print("输入错误,请从新输入!")
                num = int(input("请输入1-10的数字:"))


n = GuessNum()
n.guess_num()

优化前代码不像是个类的基本方法,都可以不用类实现,优化后可以很清楚每个方法的作用

思考:输入一个数之后,判断这个数是在这组连续数中前一半还是后一半,每次进行对半判断,直到找到最终结果。

2、作业2
"""
作业2
创建一个煎饼类 调用烹饪时长的方法累计煎饼状态
如果煎的时间在0-3之间则状态为生的
如果煎的时间在3-5之间则状态为半生不熟的
如果煎的时间在5-8之间则状态为全熟的
当时间超过8分钟状态焦了
并且还可以给煎饼添加作料
比如大葱(hhh),大蒜(hhh)?,烤肠等等
"""
import time
class Cookies:
    def __init__(self, minutes):         # 定义初始方法
        self.cookieTime = minutes
        self.State_cooking = ""

    def cooking_time(self):               # 定义不同烹饪时间取值的方法
        if self.cookieTime >= 0 and self.cookieTime < 3:
            self.State_cooking = "生的"
        elif self.cookieTime >= 3 and self.cookieTime < 5:
            self.State_cooking = "半生不熟"
        elif self.cookieTime >= 5 and self.cookieTime < 8:
            self.State_cooking = "全熟"
        elif self.cookieTime >= 8:
            self.State_cooking = "糊了"
        else:
            print("时间错误")
        return self.State_cooking


minutes = int(time.strftime('%M', time.localtime())[1])   # 调用分钟的个位数
print(minutes)
c = Cookies(minutes)     # 实例化Cookies
print(c.cooking_time())

还是没搞明白怎么加调料、肉什么的,后期逐步完善

作业2优化后代码:
class Cookies(object):
    def __init__(self):  # 定义初始方法
        self.state_cooking = "生的"
        self.cookieTime = 0
        self.condiment = []             # 定义列表接收调味品

    def __str__(self):
        return f"煎饼的状态:{self.state_cooking},煎饼的时长:{self.cookieTime}分钟,煎饼的调味品:{self.condiment}"

    def cook_condiment(self, food):     # 添加调味品用self.condiment接收
        self.condiment.append(food)

    def cooking_time(self, cookingtime):  # 定义不同烹饪时间取值的方法
        self.cookieTime += cookingtime
        if self.cookieTime >= 0 and self.cookieTime < 3:
            self.state_cooking = "生的"
        elif self.cookieTime >= 3 and self.cookieTime < 5:
            self.state_cooking = "半生不熟"
        elif self.cookieTime >= 5 and self.cookieTime < 8:
            self.state_cooking = "全熟"
        elif self.cookieTime >= 8:
            self.state_cooking = "糊了"


c = Cookies()  # 实例化Cookies
m = int(input("请输入分钟数:"))
cond = input("请加入需要的作料:")
c.cooking_time(m)
c.cook_condiment(cond)
print(c)
请输入分钟数:7
请加入需要的作料:牛板筋,青菜,王中王
煎饼的状态:全熟,煎饼的时长:7分钟,煎饼的调味品:['牛板筋,青菜,王中王']

作业2优化前,使用了时间作为烹饪时间从0-9分钟为一个循环,优点不需要人工干预,每到一个时间获取分钟的个位数,进行判断,适合个位数,但是2位数的分钟并不适合,以后需要在优化。优化后代码,直接了当,查看烹饪多长时间可以达到什么效果。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值