6
votes

Script de mesure de temps en python

J'ai reçu le script suivant d'un autre programmeur: XXX

Comme vous le savez peut-être déjà, le script mesure le temps entre la troisième et la quatrième ligne. Cependant, il semble le mesurer en quelques minutes. Comment puis-je continuer à la mesurer en quelques secondes, avec au moins un endroit décimal (ex. 7,4 secondes).

aussi, je voudrais ajouter un élément de fonctionnalité supplémentaire. Dites que le script fonctionne et que le programme est demandé de taper n'importe quel mot. À la fin de ma dactylographie, je dois appuyer sur la touche ENTER pour quitter le programme et mesurer l'heure à partir de la première frappe au moment où j'appuie sur Entrée. Comment puis-je continuer à mesurer cela?


0 commentaires

3 Réponses :


22
votes

Tout d'abord, j'éviterais d'utiliser importer * code> car il est considéré comme une mauvaise pratique. Vous pouvez utiliser temps.time () pour obtenir plus de précision:

>>> import time
>>> start = time.time()
>>> end = time.time()
>>> end - start
5.504057168960571


5 commentaires

Cela a fonctionné fantastiquement. Merci Monsieur. Quant à l'autre partie, comment irai-je de mesurer le temps de la première frappe au moment où je appuie sur ENTER?


Du premier clavier ou à partir du moment où l'invite est présentée?


À partir de la première touche à l'heure, l'entrée est enfoncée.


@Nicobellic je pense que cela mérite une question à part. Je voudrais éditer cette question et supprimer cette partie et commencer une nouvelle question.


J'ai ouvert une nouvelle question. Ici, il est: Stackoverflow.com/Questtions/ 9133923 / ... . Aussi, merci encore pour votre aide.



2
votes
#source: http://docs.python.org/library/timeit.html
def test():
    """Stupid test function"""
    L = []
    for i in range(100):
        L.append(i)

if __name__ == '__main__':
    from timeit import Timer
    t = Timer("test()", "from __main__ import test")
    print t.timeit()

2 commentaires

Salut Cetver. Je viens d'essayer votre code et je me sens comme ça ne fonctionne pas correctement. Après avoir exécuté le script, j'écris quelque chose, appuyez sur Entrée et, après un certain temps, le script génère un flotteur (ce qui semble être aléatoire). Les flotteurs sont n'importe où entre 20 secondes à 40 secondes. Peu importe l'heure du premier coup, c'est tout ce que je continue à obtenir.


@Nicobellic c'est parce qu'il l'exécute plusieurs fois. Voir les docs pour le module TimeiT.



1
votes

Si vous essayez d'optimiser un appel de service Web Python, vous pouvez effectuer ce qui suit. xxx pré>

au début de la fonction, droite p>

  l608 = time.time()
  print("-------- 609 ------------")
  print(l608 - l540)


0 commentaires