Bonjour à tous,
Suites aux ports de TapTempo en Rust, Ada, JS, et PERL
Voilà ma version en python ;-)
#!/usr/bin/python
# -*- coding: utf-8 -*
import sys,termios,tty,datetime
def getKey():
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
try:
tty.setraw(fd)
ch = sys.stdin.read(1)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
return ch
print "tapTempo : press any key (q for quit)"
t=[]
while getKey()!="q":
t.append( datetime.datetime.now() )
ll=[ (j-i).microseconds for i, j in zip(t[:-1], t[1:]) ][-5:]
print "BPM:",60000000*len(ll)/sum(ll) if ll else None
# Sans deque ?!
Posté par GuieA_7 (site web personnel) . Évalué à 5.
Tu peux utiliser un
deque
avec une taille fixe afin qu'il ne soit pas possible de faire exploser la taille de ta liste.[^] # Re: Sans deque ?!
Posté par manatlan (site web personnel) . Évalué à 2.
J'ai essayé … mais impossible de faire des slice sur le deque … du coup, faut le reconvertir en list avant les slices ;-(
Du coup, ça alourdi le code ;-)
# Périmètre différent
Posté par Blackknight (site web personnel, Mastodon) . Évalué à 4.
Je pense que tu devrais faire tourner la version C++ d'origine car ton programme ne fonctionne pas de la même façon.
Du coup, on ne peut pas vraiment dire que c'est un portage, c'est plutôt un approchant.
[^] # Re: Périmètre différent
Posté par manatlan (site web personnel) . Évalué à 1. Dernière modification le 28 février 2018 à 09:59.
Je pense que j'aurai passé plus de temps à tenter de le faire s’exécuter, et à comprendre son fonctionnement, que de re-coder "qqchose de similaire"
Voilà un patch pour s'approcher de l'original :
NB: j'ai juste décaler à droite, les 2 dernières lignes
[^] # Re: Périmètre différent
Posté par Blackknight (site web personnel, Mastodon) . Évalué à 1.
Franchement, ça se compile comme un charme sur une Ubuntu 17.10 et je pense qu'il n'y a aucune différence sur les autres distributions.
C'était pourtant là toute la beauté du geste, comprendre ce qui est fait dans un langage pour réussir à le réécrire dans ton langage préféré et montrer ainsi les avantages et inconvénients de chacun.
Du coup, similaire, pas identique donc ce n'est pas un portage
[^] # Re: Périmètre différent
Posté par Anonyme . Évalué à 2. Dernière modification le 01 mars 2018 à 22:05.
https://gitlab.com/snippets/1701653
# What else ?
Posté par gusterhack . Évalué à 3.
Rust, Ada, JS, et PERL à quand une version assembleur ? :)
[^] # Re: What else ?
Posté par Leniwce . Évalué à -8. Dernière modification le 28 février 2018 à 12:52.
J'ai pas osé l'écrire, j'aurais eu droit au moinssage habituel.
PS : à quand une version Turbo Pascal
attention chérie ça va moinsser
[^] # Re: What else ?
Posté par Thomas Douillard . Évalué à 3.
C'est facile, tu prends la version C++ et les bonnes options de g++.
# -_-
Posté par gusterhack . Évalué à 3.
Ou Brainfuck ?
# 2.7 ?
Posté par Maxime (site web personnel) . Évalué à 10.
Mais pourquoi faire du Python 2.7 en 2018 lorsqu'on peut faire du Python 3 ? La seule différence ici c'est les parenthèses autour des arguments du print.
[^] # Re: 2.7 ?
Posté par gnumdk (site web personnel) . Évalué à 2. Dernière modification le 28 février 2018 à 16:32.
Parce que à part ArchLinux, les autres OS sont obsolètes et forcent leurs utilisateurs à utiliser des technos obsolètes par défaut…
[^] # Re: 2.7 ?
Posté par Gof (site web personnel) . Évalué à 3. Dernière modification le 28 février 2018 à 16:53.
En même temps, rajouter un 3 dans la première ligne du programme (
#!/usr/bin/python3
) c'est pas compliqué.Est-ce vraiment la raison ?
Maxime va pouvoir faire un nouveau journal pour le port en Python 3. :-)
[^] # Re: 2.7 ?
Posté par Anonyme . Évalué à 3. Dernière modification le 01 mars 2018 à 02:22.
Je ne sais pas ce qu’il voulait dire dans son commentaire, mais concernant ton point, la règle (PEP 394) c’est :
#!/usr/bin/python
: programme compatible Python 2 et 3#!/usr/bin/python2
: programme compatible Python 2 uniquement#!/usr/bin/python3
: programme compatible Python 3 uniquementBien sûr, ensuite, sur le système,
/usr/bin/python
est un lien vers l’un ou l’autre des interpréteurs.[^] # Re: 2.7 ?
Posté par flan (site web personnel) . Évalué à 4.
Je ne connais pas toutes les distribs, mais Ubuntu ne propose que python3 par défaut (python2 n'est pas installé).
[^] # Re: 2.7 ?
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
Package python
Package python3
[^] # Re: 2.7 ?
Posté par flan (site web personnel) . Évalué à 5.
Je n’ai pas dit qu’il n’était pas disponible mais qu’il n’était pas installé sur une Ubuntu de base.
[^] # Re: 2.7 ?
Posté par Anonyme . Évalué à 2.
Raaah, j’ai pertinenté sans faire exprès >.<
Ton commentaire n’as aucun sens. J’ai Python 3 sur toutes les Debian que j’ai sous la main (de Wheezy à Stretch), sur un Mac OS, et même sur OmniOS.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.