You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python生成10个小时不重复随机时刻 实现任意两时刻先后比较

Python 单日时刻存储与比较功能实现

需求回顾

存储单日10个时刻数据,每个时刻包含小时(取值范围023)、分钟(取值范围059)、秒(取值范围0~59),要求10个时刻的小时值不可重复,支持任选两个时刻比较当日发生时间的先后顺序。

原有代码问题

  • 小时生成用random.randint随机取值,未做去重处理,可能出现重复小时,不符合规则
  • 拼接时间数据时遗漏秒字段,仅存储了小时、分钟信息,时间数据不完整
  • 未实现时间比较核心逻辑,while True交互循环为空,功能未串联
  • 存在num_of_H、num_of_M两个重复冗余变量,无实际作用

完整实现代码

import random

# 生成10个不重复的小时值(0~23无放回抽样)
hours = random.sample(range(24), 10)
# 生成对应10个分钟、秒值
minutes = [random.randint(0, 59) for _ in range(10)]
seconds = [random.randint(0, 59) for _ in range(10)]
# 组装为字典:key为时刻序号0~9,value为(时,分,秒)元组
time_map = {idx: (h, m, s) for idx, (h, m, s) in enumerate(zip(hours, minutes, seconds))}

# 打印所有生成的时刻供用户选择
print("已生成10个小时不重复的时刻,对应关系如下:")
for idx, (h, m, s) in time_map.items():
    print(f"序号{idx}: {h:02d}:{m:02d}:{s:02d}")

# 交互循环
while True:
    user_input = input("\n请输入两个要比较的时刻序号(用空格分隔,输入q退出程序):").strip()
    if user_input.lower() == 'q':
        print("程序退出")
        break
    try:
        idx1, idx2 = map(int, user_input.split())
        # 校验序号范围
        if idx1 not in time_map or idx2 not in time_map:
            print("输入错误:序号必须在0~9之间,请重新输入")
            continue
        t1 = time_map[idx1]
        t2 = time_map[idx2]
        # 利用元组逐位比较特性直接判断先后
        if t1 < t2:
            print(f"序号{idx1}的时刻({t1[0]:02d}:{t1[1]:02d}:{t1[2]:02d})早于序号{idx2}的时刻({t2[0]:02d}:{t2[1]:02d}:{t2[2]:02d})")
        elif t1 > t2:
            print(f"序号{idx2}的时刻({t2[0]:02d}:{t2[1]:02d}:{t2[2]:02d})早于序号{idx1}的时刻({t1[0]:02d}:{t1[1]:02d}:{t1[2]:02d})")
        else:
            print(f"序号{idx1}和序号{idx2}的时刻完全相同")
    except ValueError:
        print("输入格式错误,请输入两个合法数字序号,或输入q退出")

关键实现说明

  • 不重复小时生成:使用random.sample(range(24), 10)做无放回随机抽样,一次生成10个互不重复的小时值,不需要额外写去重重试逻辑
  • 时间比较逻辑:Python元组默认按元素顺序逐位对比,(时1,分1,秒1)和(时2,分2,秒2)对比时,会先判断小时大小,小时相等再判断分钟,分钟相等再判断秒,完全匹配单日时间先后的判断规则,代码简洁无冗余
  • 交互容错:对用户输入做异常捕获,对格式错误、序号超出范围的情况给出明确提示,不会因非法输入直接崩溃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:09:20