【问题标题】:Return a random time between two times返回两次之间的随机时间
【发布时间】:2021-04-16 11:45:07
【问题描述】:

我在使用 Python 代码时遇到了一些问题。我应该创建一个在 08:00:00 到 20:59:59 之间生成随机时间的代码,并且我的函数应该返回一个时间对象。我必须使用模块随机和日期时间。到目前为止,我已经尝试过:

import random
import datetime
def random_time(start, end):
    start = datetime.time(9, 0, 0)
    end = datetime.time(21, 59, 59)
    a = random.random(start, end)
    return a

当我尝试这个时,它说“开始”没有定义。我至少在正确的轨道上吗? :)

【问题讨论】:

    标签: python random time


    【解决方案1】:

    如第一个答案中所述,最好使用timedelta 完成您的任务。

    而且您不必在函数内重新初始化 startend 参数。例如:

    from random import randrange
    from datetime import timedelta
    
    
    def random_time(start, end):
        return timedelta(seconds=randrange(timedelta(hours=start).total_seconds(),
                                           timedelta(hours=end).total_seconds()))
    
    
    print(random_time(9, 22))
    
    

    【讨论】:

      【解决方案2】:

      我会将 timedelta 和秒作为整数(通过 timedelta.totalseconds(),如下所示:

      import random
      import datetime
      
      start = datetime.timedelta(hours=9, minutes=0, seconds=0)
      end = datetime.timedelta(hours=21, minutes=59, seconds=59)
      
      random_seconds=random.randint(start.total_seconds(),end.total_seconds())
      
      random_time=datetime.timedelta(seconds=random_seconds)
      
      print(random_time)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-16
        • 1970-01-01
        • 1970-01-01
        • 2018-05-08
        • 1970-01-01
        • 1970-01-01
        • 2014-01-27
        • 2020-09-15
        相关资源
        最近更新 更多