#使用class类
class Data:
    #默认初始化加上后续要输入的数据
    def __init__(self,year=2026,month=1,day=1,hour=00,minute=00):
        self.year = year
        self.month= month
        self.day= day
        self.hour= hour
        self.minute= minute
    def SetYear(self):
            #修改年份(增加基础校验)
            self.year = int(input("请输入修改后的年份:"))
            while True:
                self.month = int(input("请输入修改后的月份:"))
                if 1 <= self.month <= 12:
                    break
                print("月份必须在 1-12 之间,请重新输入。")
                # 修改日期,用循环保证输入合法
            while True:
                self.day = int(input("请输入修改后的日期:"))
                # 简单校验:1到31,暂不区分月份
                if 1 <= self.day <= 31:
                    break
                print("日期必须在 1-31 之间,请重新输入。")
            while True:
                # 简单校验:时间00:00-23:59之间
                self.hour = int(input("请输入修改后的时钟值:"))
                if 0 <= self.hour <= 23:
                    break
                print("时钟值必须在 0-23 之间,请重新输入。")
            while True:
                # 简单校验:分钟00-59之间
                self.minute = int(input("请输入修改后的分钟值:"))
                if 0 <= self.minute <= 59:
                    break
                print("分钟值必须在 0-59 之间,请重新输入。")

            return self.year, self.month, self.day, self.hour, self.minute
    def MytData(self):
        print(f"原数据为:{self.year}{self.month}{self.day}{self.hour}{self.minute}分")
    def SetShow(self):
        print(f"修改后:{self.year}{self.month}{self.day}{self.hour}{self.minute}分")
    def NoSetShow(self):
        print(f"未修改:{self.year}{self.month}{self.day}{self.hour}{self.minute}分")

#更改后的数据,初始化d1的数据,并使用初始化后的数据打印出来
d1 = Data()
d1.MytData()
print("您要修改数据吗?")
revise = input("'yes' 或 'no'?\n")
#将里面的判断包装成类函数
while True:
    if revise == "yes":
        d1.SetYear()
        d1.SetShow()
        break
    elif revise == "no":
        d1.NoSetShow()
        break
    else:
        print("输入错误,请输入 'yes' 或 'no'。")
        revise = input("'yes' 或 'no'?\n")

这是个人写的,和DeepSeek优化后感觉只有增加了闰年判断和名称修改

# 每月最大天数(先不考虑闰年)
MAX_DAYS = {
    1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30,
    7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31
}


class Data:
    """日期时间数据类,用于存储和修改年月日时分"""

    def __init__(self, year=2026, month=1, day=1, hour=0, minute=0):
        self.year = year
        self.month = month
        self.day = day
        self.hour = hour
        self.minute = minute

    def update_all(self):
        """修改所有字段,带完整校验"""
        # 修改年份
        self.year = int(input("请输入修改后的年份:"))

        # 修改月份(循环保证输入合法)
        while True:
            self.month = int(input("请输入修改后的月份:"))
            if 1 <= self.month <= 12:
                break
            print("月份必须在 1-12 之间,请重新输入。")

        # 判断闰年,调整2月天数
        year = self.year
        if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
            MAX_DAYS[2] = 29
        else:
            MAX_DAYS[2] = 28

        # 修改日期(根据月份限制天数)
        while True:
            self.day = int(input("请输入修改后的日期:"))
            limit = MAX_DAYS[self.month]
            if 1 <= self.day <= limit:
                break
            print(f"{self.month}月最多只有{limit}天,请重新输入。")

        # 修改小时(0-23)
        while True:
            self.hour = int(input("请输入修改后的时钟值(0-23):"))
            if 0 <= self.hour <= 23:
                break
            print("时钟值必须在 0-23 之间,请重新输入。")

        # 修改分钟(0-59)
        while True:
            self.minute = int(input("请输入修改后的分钟值(0-59):"))
            if 0 <= self.minute <= 59:
                break
            print("分钟值必须在 0-59 之间,请重新输入。")

    def show_original(self):
        """显示原始数据"""
        print(f"原数据为:{self.year}{self.month}{self.day}{self.hour}{self.minute}分")

    def show_modified(self):
        """显示修改后的数据"""
        print(f"修改后:{self.year}{self.month}{self.day}{self.hour}{self.minute}分")

    def show_unchanged(self):
        """显示未修改的数据"""
        print(f"未修改:{self.year}{self.month}{self.day}{self.hour}{self.minute}分")


# ========== 主程序 ==========
d1 = Data()
d1.show_original()
print("您要修改数据吗?")

revise = input("'yes' 或 'no'?\n")

while True:
    if revise == "yes":
        d1.update_all()
        d1.show_modified()
        break
    elif revise == "no":
        d1.show_unchanged()
        break
    else:
        print("输入错误,请输入 'yes' 或 'no'。")
        revise = input("'yes' 或 'no'?\n")

本来昨天就写好了,被限制发文了

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐