Python 向datetime.now()的值添加随机数

Python 向datetime.now()的值添加随机数,python,datetime,random,python-datetime,Python,Datetime,Random,Python Datetime,基本上,我正在尝试制作一个程序,计算两个相距200米的点之间的平均速度,当然,将其转换为mph,这样我就可以说它是高于还是低于速度限制。我在创建时遇到了一些问题,因此它会将随机数添加到datetime.now()的值中,因为它告诉我“NameError:name'random'未定义”。 可能有一个非常简单的解决方案,我只是不确定如何在这个例子中使用随机数。 我真的不知道该怎么处理这个问题,谢谢你的帮助。 以下是我目前的代码: from datetime import date, datetim

基本上,我正在尝试制作一个程序,计算两个相距200米的点之间的平均速度,当然,将其转换为mph,这样我就可以说它是高于还是低于速度限制。我在创建时遇到了一些问题,因此它会将随机数添加到datetime.now()的值中,因为它告诉我“NameError:name'random'未定义”。 可能有一个非常简单的解决方案,我只是不确定如何在这个例子中使用随机数。 我真的不知道该怎么处理这个问题,谢谢你的帮助。 以下是我目前的代码:

from datetime import date, datetime, time, timedelta
from random import seed, randrange, uniform
import time
def timeDelta():
    print("Average Speed Checker")
    start = (input("Car has passed Cam1: "))
    if start in ("y"):
        camInput1 = datetime.now()
        print(camInput1)
        print("Car is travelling...")
        time.sleep(1)
        print("Car is travelling...")
        time.sleep(1)
        print("Car has passed cam2")
        camInput2 = camInput1 + timedelta(seconds = random.uniform(5, 10))
        timeDelta = camInput2 - camInput1
        distance = 200
        duration = timeDelta.total_seconds()
        print("Time Delta is equal to: {0}".format(duration))
        speedCarMs = distance/duration
        print("Car is travelling in m/s at: {0}".format(speedCarMs))
        speedCarMph = 2.237*speedCarMs
        print("Car is traveelling in MPH at: {0}".format(speedCarMph))


print("Choose which function you want to use: ")
while True:
    choice = (input("Choice: "))
    if choice in ("speed"):
        timeDelta()
    else:
        print("Invalid response")

因为您是这样导入的:

from random import seed, randrange, uniform
您不需要引用名称空间。与此相反:

timedelta(seconds = random.uniform(5, 10))
尝试:


这是因为当你像
一样从。。。导入…
,它会将它们添加到当前范围。就像
a=29
将变量
a
添加到具有值
29
的作用域中一样,随机导入uniform的
uniform
作为函数添加到作用域中。

因为您是这样导入的:

from random import seed, randrange, uniform
您不需要引用名称空间。与此相反:

timedelta(seconds = random.uniform(5, 10))
尝试:


这是因为当你像
一样从。。。导入…
,它会将它们添加到当前范围。就像
a=29
将变量
a
添加到具有值
29
的作用域中一样,
来自random import uniform
uniform
作为函数添加到作用域中。

您导入了名称
uniform
(除其他外),名称
random

from random import seed, randrange, uniform
这会将
seed
randrange
uniform
添加到全局

只需删除
random.
前缀,然后直接使用
uniform
global:

camInput2 = camInput1 + timedelta(seconds = uniform(5, 10))
注意,您可以在这里简化代码;无需在
camInput1
上加上,然后再减去。只需使用:

timeDelta = timedelta(seconds = uniform(5, 10))

datetime\u值+timedelta\u值-datetime\u值
再次只生成
timedelta\u值

您导入了名称
统一
(除其他外),不是名称
随机

from random import seed, randrange, uniform
这会将
seed
randrange
uniform
添加到全局

只需删除
random.
前缀,然后直接使用
uniform
global:

camInput2 = camInput1 + timedelta(seconds = uniform(5, 10))
注意,您可以在这里简化代码;无需在
camInput1
上加上,然后再减去。只需使用:

timeDelta = timedelta(seconds = uniform(5, 10))

datetime\u值+timedelta\u值-datetime\u值
再次只生成
timedelta\u值

因为您特别地
从随机导入种子、随机范围、统一
,所以您只需要例如
统一(5,10)
random.uniform
适用于只导入random
的情况。无关:
datetime.now()
是一个非单调且不明确的本地时间,请使用
datetime.utcnow()
或只使用“从纪元开始的秒数”(
time.time()
)。请参阅中的更多详细信息。您可能应该使用来测量时间间隔。因为您专门从random import seed、randrange、uniform中导入
,所以您只需要
uniform(5,10)
random.uniform
适用于只导入random
的情况。无关:
datetime.now()
是一个非单调且不明确的本地时间,请使用
datetime.utcnow()
或只使用“从纪元开始的秒数”(
time.time()
)。请参阅中的更多详细信息。您可能应该使用来测量时间间隔。