2017-12-15 2 views
0

私は現在、2つのセンサーを渡すために、ドライバのにかかった時間を記録スピードカメラチェックプログラムを書いていますを見つけます。スピードカメラチェック:ユーザー時間

私はスピードカメラでスピード=距離/時間

を使用してユーザーの平均速度を見つけたい、距離が知られているが、時間がないです。ここに私のコードのいくつかがあります。

distanceapart = 20 
start = input("Press enter to start") 
starttime =(datetime.now()) 
stop = input("Press enter to stop") 
stoptime =(datetime.now()) 

time = stoptime-starttime 

これは、ユーザーの時刻を記録するためのものです。出力の

一つは '0:00:00.451445秒' です

私は

distanceapart/time 

を試してみました。しかし、それは

は、この作業をするためにとにかくあります動作しませんか?事前

+0

はあなたが起こるために何をしたいですか?たとえば、あなたが与えた時間に期待される成果はどうでしょうか? –

+0

'datetime'オブジェクトで変換してintを使うことはできません。たとえば秒に最初に変換します。第二に、dsitanceは何ですか? 'キロ/ m' – Ludisposed

+0

@Ludisposed距離メーターは – theoneandonlyndy

答えて

1

私はそのための専用の高精度タイマーを使用したい:

import sys 
import time 

# a cross-platform precision timer 
get_timer = time.clock if sys.platform == "win32" else time.time 

distance = 20 
input("Press enter to start.") 
start_time = get_timer() 
input("Press enter to stop.") 
stop_time = get_timer() 

delta_time = stop_time - start_time # passed time in seconds 
speed = distance/delta_time # the unit depends on the unit of your `distance` value 
+0

私はそれのほとんどを理解しますが、3行目「get_timerは」...あなたは説明してくださいすることができませんか? [ 'time.clock()'](https://docs.python.org/2/library/time.html#time.clock) - – theoneandonlyndy

+0

1ndy123 @内蔵 'time'モジュールは、精密タイマの2つの機能を有しますそして[ 'time.time()'](https://docs.python.org/2/library/time.html#time.time)(あなたは[このページ](HTTPSで異なるPythonのタイマーの詳細を読むことができます: //www.webucator.com/blog/2015/08/python-clocks-explained/))。残念ながら、それらは異なるプラットフォーム上で動作が異なり、Windowsでは前者が優先されます。その行は、プラットフォームが 'get_timer'変数に依存するより正確な関数への参照を格納します。 – zwer

0

おかげで、開始と終了の間の差はtimedeltaオブジェクトを提供します。このようにtimedeltaのクラスフィールドの1つを使用して時間差にアクセスする必要があります。

from datetime import datetime 
start = datetime.now() 
end = datetime.now() 
delta = end - start 
distance = 20 
speed = distance/delta.seconds 
# 4.0 distance units/second 
0

これは役立つはず:

import datetime 
import time # for sleep 

dt = datetime.datetime.now() # one now() 
time.sleep(1.83) 
dt2 = datetime.datetime.now() # another now() a bit later 


dtdelta = dt2-dt    # time spent (it is a deltatime) 
print(dtdelta.total_seconds()) # in total_seconds - use it to calculate your speed 

はDokumentation:https://docs.python.org/3/library/datetime.html#module-datetime

関連する問題