Convertisseur de valeurs Python
Posté le 12/03/2019 10:07
Bonjour, j'aimerais vous présenter un programme que j'ai créé et complètement commenté, il permet de convertir des données d'une valeur vers une autre.
Mon programme actuel convertit des unités de temps, mais peut être très aisément tourné en n'importe quel type d'utilitaire du genre, je pense par exemple à un convertisseur de monnaies ou d'unités de mesure.
Voici un exemple :
> 154 secondes, 1 minute et 5 heures
Convertir vers :
seconde
minute
heure
jour
semaine
(Entrer nom entier)> minute
303.56666666666666
Le code est améliorable, mais j'ai éviter de le complexifier pour qu'il soit facilement lisible, compréhensible et modifiable par un débutant
Le programme est probablement fonctionnel sur 90+e et le MicroPython de Zezombye, mais je n'ai aucun moyen de vérifier cela, et je pense que ce genre d'outils pourrait se révéler utile dans certains cours (en gardant à l'esprit que la 90+e n'a pas le problème des floats binaires), donc si quelqu'un pouvait tester, je lui en lui serait reconnaissant
Je demande des critiques négatives au lecteur, je cherche à m'améliorer
Le programme est en fichier joint (virez l'encodage en haut si vous testez sur calto), ou
via ce lien.
Cordialement.
Fichier joint
Citer : Posté le 12/03/2019 19:23 | #
cool, mais pourquoi tu l'as pas posté en tant que programme ?
Ajouté le 12/03/2019 à 19:23 :
cool, mais pourquoi tu l'as pas posté en tant que programme ?
Citer : Posté le 13/03/2019 07:06 | #
Je ne l'ai pas testé sur calculatrice, et le programme en tant que tel est plutôt inutile pour un non-programmeur.
Citer : Posté le 13/03/2019 14:24 | # | Fichier joint
Si ça intéresse quelqu'un, j'avais fait il y a bien longtemps un convertisseur d'unité de masse ( /!\ sur ordi, pas forcément compatible! )
je le fournis fichier joint
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 13/03/2019 15:11 | #
Si ça intéresse quelqu'un, j'avais fait il y a bien longtemps un convertisseur d'unité de masse ( /!\ sur ordi, pas forcément compatible! )
je le fournis fichier joint
Merci Mactul !
J'ai porté ton programme vers mon système, ce fut très rapide (moins de 10 minutes ) et voici ce que ça donne :
# les valeurs associées à leurs clefs utilisées pour la conversation
WEIGHTS = {
"mg" : 1,
"cg" : 10,
"dg" : 100,
"g" : 1000,
"dag" : 10000,
"hg" : 100000,
"kg" : 1000000
}
total = 0 # variable qui contiendra la somme des valeurs converties à l'unité
userInput = input("> ") # entrée utilisateur
# listes des chaînes à supprimer dans userInput
toDelete = [
",",
"et",
"plus",
"&",
"+"
]
userInput = userInput.lower() # passe tous les caractères en minuscule
# supprime toutes les occurences de toDelete présentes dans userInput
for value in toDelete:
userInput = userInput.replace(value, " ")
# supprime les espaces au début et à la fin de la chaîne
userInput = userInput.strip()
# transforme la chaîne en une liste de chaînes
userInput = userInput.split(" ")
# supprime toutes les occurences vides de la liste userInput
i = len(userInput) - 1
while i >= 0:
if not userInput[i]: del userInput[i]
i -= 1
# supprime tous les "s" à la fin des mots
for i, value in enumerate(list(userInput)):
if value[-1] == "s":
userInput[i] = userInput[i][:-1]
# additionne toutes les valeurs converties à l'unité dans "total"
for i, word in enumerate(userInput):
if word in WEIGHTS:
total += WEIGHTS[word] * int(userInput[i-1])
#print(userInput)
# affiche toutes les clefs de WEIGHTS
print("\nConvertir vers :\n")
for word in WEIGHTS:
print(" " + word)
# demande à l'utilisateur de rentrer la clef correspondant à la valeur choisie
convertInto = input("\n(Entrer nom entier)> ".format(len(WEIGHTS) - 1))
# affiche le résultat, décommenter la dernière ligne pour rajouter une "pause"
print(total / WEIGHTS[convertInto])
input()
Oui j'ai juste changé le nom et le contenu du dictionnaire
Citer : Posté le 13/03/2019 15:23 | #
Je n'ai pas bien compris le début, mais si ça marche...Tant mieux!
Si tu veux, comme je sais que tu code en python
J'ai plein de programmes hyper simples mais longs à coder que j'ai fait pour apprendre python.
Celui-ci en fait parti
demande-moi
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 14/03/2019 16:45 | #
Je n'ai pas bien compris le début, mais si ça marche...Tant mieux!
Tu n'as pas compris le début de mon poste ou du code ?
Le code, tout ce que j'ai fait c'est modifier un dictionnaire (WEIGHTS) dans mon programme principal
C'était très rapide, et c'était pour montrer qu'il est "modulaire", changer ces données permet de changer le système de conversion.
Si tu veux, comme je sais que tu code en python
J'ai plein de programmes hyper simples mais longs à coder que j'ai fait pour apprendre python.
Celui-ci en fait parti
demande-moi
Merci mais j'ai déjà des projets en cours