You need to enable JavaScript to run this app. Python中不使用if语句实现Time对象时间比较的is_after函数编写
优惠活动
大模型
产品
解决方案
定价
更多

Python中不使用if语句实现Time对象时间比较的is_after函数编写

无if分支实现is_after的方案

核心思路:将时分秒的时间分量按固定权重折算为统一尺度的总秒数,利用Python比较表达式原生返回布尔值的特性,直接完成判断,全程不需要任何if分支语句。

  • 固定权重换算规则:1小时等价于3600秒,1分钟等价于60秒,两个时间的先后关系,和它们折算后的总秒数的大小关系完全等价
  • Python的比较操作(如 >、<)执行后会直接返回布尔类型的True/False,不需要额外用if语句做分支包装

改造后的可运行代码:

class Time:
    def __init__(self, hour, min, sec):
        self.hour = hour
        self.min = min
        self.sec = sec

def is_after(t1, t2):
    t1_total_sec = t1.hour * 3600 + t1.min * 60 + t1.sec
    t2_total_sec = t2.hour * 3600 + t2.min * 60 + t2.sec
    return t1_total_sec > t2_total_sec

你最初编写的嵌套if逻辑,本质是按小时、分钟、秒的优先级逐位对比大小,折算总秒数的方法是把这套逐位对比的逻辑合并成单次数值比较,判断结果和原代码完全一致,不存在逻辑偏差,同时完全满足题目“禁止使用if语句”的要求。


内容的提问来源于stack exchange,提问作者Jenkins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.25 18:45:04