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