Convertir les secondes en millisecondes/microsecondes en Python
Je suis en train de convertir les secondes en millisecondes (ou microsecondes) sans la diviser par 1 000 ou 1 000 000. La raison pour laquelle je suis en train de faire, c'est parce que je ne veux pas le point décimal à être montré. Est-il un moyen de montrer millisecondes ou microsecondes sans virgule et sans la diviser par 1 000 ou 1 000 000?
Voici mon code avec la méthode de synchronisation de l'exécution:
from random import randint
list = [1]*1000
for i in range (1, 1000):
list[i] = randint(1,100)
def insertion(list):
for index in range(1,len(list)):
value = list[index]
i = index - 1
while i>=0 and (value < list[i]):
list[i+1] = list[i]
list[i] = value
i = i - 1
def test():
start = time.clock()
insertion(list)
elapsed = (time.clock() - start)
print "Time taken for insertion = ", elapsed
if __name__ == '__main__':
import time
test()
- 1 deuxième est de 1000 millisecondes, donc vous avez besoin pour se multiplier.
- D'algorithmes temps, utilisez la
timeit
module. - Si la seule contrainte est que vous ne voulez pas le point décimal à être montré, il vous suffit de l'imprimer avec un format qui n'affiche pas la virgule. Par exemple:
print "Time taken for insertion = {:.0f}".format(elapsed)
. Ensuite, il n'a pas d'importance quel type que vous avez. - Et pendant ce temps, dans Python 2.7 et plus tôt, si
n
est unint
,n / 1000
est unint
trop (sauf si vous utilisez un__future__
déclaration). Si vous voulez être absolument sûr, l'utilisation de l'explicite "floordiv" opérateur:n // 1000
est unint
même dans les 3.x. - Merci!
Vous devez vous connecter pour publier un commentaire.
Sûr! Pour convertir les secondes en millisecondes ou microsecondes, vous multiplier par le nombre, de la divisions de dans une seconde (par exemple, 1000 millisecondes). Pas de division besoin!
Si vous ne voulez pas les décimales, utilisez
round()
ouint()
sur le résultat.Je pense que votre question peut être raté quelque chose. Pour convertir un nombre de secondes en millisecondes, vous pouvez simplement multiplier (pas de fracture) par 1000.
Si c'est 52 secondes:
Ce serait de retour l'entier
52000
.