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 un int, n / 1000 est un int 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 un int même dans les 3.x.
  • Merci!
InformationsquelleAutor | 2013-04-30