Projets pour le boulot
Bonsoir tout le monde.
J'ai eu une idée de projet à la fin du mentorat. c'est pour le boulot.
En gros une personne saisie un prix d'achat, ça lui calcul un prix de vente en fonction d'un coef.
Il écrit le code article correspondant et les informations sont envoyés dans un fichier txt.
Je viens de le terminer il fonctionne je l'ai testé.
La question c'est, quand on fait un projet pour quelqu'un, si Python n'est pas installé sur son ordi on a pas de moyen de le faire fonctionner ?
Est-ce qu'il faut convertir le script en .exe ? créer une interface graphique etc ??
La question ci-dessus est un peu bête, mais je m'interrogeais sur le "comment livrer un projet fonctionnel à qqun ?"
Merci d'avance
fichier_txt = "pv.txt"
CHOICE = ["1", "2", "3", "4"]
#l'utilisateur fait un choix
#le clacul sera différent selon choix
#lui demander s'il en a d'autre à faire
while True:
user_choice = input("Choix 1 : coef 1.5 / Choix 2 : coef 1.8 / Choix 3 : STOP ==> ")
while user_choice not in CHOICE:
user_choice = input("Choix 1 : coef 1.5 / Choix 2 : coef 1.8 / Choix 3 : STOP / Choix 4 : effacer la liste des prix ==> ")
if user_choice not in CHOICE:
print("Rentrez un choix valide.")
if user_choice == "1":
pa = input("Entrez votre prix d'achat : ")
while not pa.isdigit():
pa = input("Entrez votre prix d'achat : ")
pa = int(pa)
pv = pa * 1.5
print(f"Ton PV devrait être de {pv}")
article = input("code article : ") + " "
with open(fichier_txt, "a") as f:
pv = str(pv) + "\n"
f.write(article)
f.write(pv)
elif user_choice == "2":
pa = input("Entrez votre prix d'achat : ")
while not pa.isdigit():
pa = input("Entrez votre prix d'achat : ")
pa = int(pa)
pv = pa * 1.8
print(f"Ton PV devrait être de {pv}")
article = input("code article : ") + " "
with open(fichier_txt, "a") as f:
pv = str(pv) + "\n"
f.write(article)
f.write(pv)
elif user_choice == "3":
break
elif user_choice == "4":
with open(fichier_txt, "w") as f:
f.write("")
print("Fin du script !")
Hello,
j'ai pas regardé en détail ton script. Tu veux qu'on regarde ?
Pour ce qui est de la partager tu as plein de solutions. Moi j'utilise auto-py-to-exe (une autre lib que celle mentionnée par Eric) il est assez pratique. Il offre une petite UI pour générer ton exe. Je l'ai utilisé sur windows pour les autres plateformes je n'ai jamais utilisé.
Pour une app en mode console je pense que tu n''auras pas de problème.
Mais oui comme le dit Eric, pour partager un script python à quelqu'un qui n'a pas python le mieux c'est un exec sur windows par exemple.
Sinon il y a la solution de streamlit qui te permet de créer une app en ligne à laquelle n'importe qui peut accéder depuis son navigateur sans aucun config et c'est donc cross platform. J'avais fais une session de mentorat là dessus.
Bonne continuation.
Hello Gabriel,
Tu rentres forcément un nombre entier ?
Je vois ça dans ton script:
pa = input("Entrez votre prix d'achat : ")
while not pa.isdigit():
pa = input("Entrez votre prix d'achat : ")
pa = int(pa)
C'est normal si isdigit te retourne False. C'est une méthode de string, il ne peut pas reconnaitre si ce n'est pas un entier.
A ta place je ferai plutôt un truc du genre:
pa=float(input())
while not type(pa) == float:
...
un float est un nombre a virgule. Donc même si tu entre en entier ce n'est pas grave. Un entier reste un float particulier avec un ".0"
Mais oui je suis bête je converti en int alors que je veux des float.
Mais le pblm, c'est que si l'utilisateur ne saisit par un chiffre ça me sort :
ValueError: could not convert string to float: ""
Je n'arrive pas à gérer ce problème. J'ai pensé à une exception mais je ne pense pas que ça soit une bonne manière.
fichier_txt = "pv.txt"
CHOICE = ["1", "2", "3", "4"]
#l'utilisateur fait un choix
#le clacul sera différent selon choix
#lui demander s'il en a d'autre à faire
while True:
user_choice = input("Choix 1 : coef 1.5 / Choix 2 : coef 1.8 / Choix 3 : STOP / Choix 4 : effacer la liste des prix ==> ")
while user_choice not in CHOICE:
user_choice = input("Choix 1 : coef 1.5 / Choix 2 : coef 1.8 / Choix 3 : STOP / Choix 4 : effacer la liste des prix ==> ")
if user_choice not in CHOICE:
print("Rentrez un choix valide.")
if user_choice == "1":
pa = input("Entrez votre prix d'achat : ")
pa = float(pa)
pv = pa * 1.5
print(f"Ton PV devrait être de {pv}")
article = input("code article : ") + " "
with open(fichier_txt, "a") as f:
pv = str(pv) + "\n"
f.write(article)
f.write(pv)
elif user_choice == "2":
pa = input("Entrez votre prix d'achat : ")
pa = float(pa)
pv = pa * 1.8
print(f"Ton PV devrait être de {pv}")
article = input("code article : ") + " "
with open(fichier_txt, "a") as f:
pv = str(pv) + "\n"
f.write(article)
f.write(pv)
elif user_choice == "3":
break
elif user_choice == "4":
with open(fichier_txt, "w") as f:
f.write("")
print("Fin du script !")
Ok, en fait c'est la première fois que j'utilise une exception hors du cadre théorique.
J'ai bien compris maintenant.
Voici mon code modifié qui gère la ValueError si l'utilisateur rentre n'importe quoi en input.
Tu en avais parlé lors d'un mentora, donc pour except j'ai bien précisé ValueError. Je ne passe pas tout en exception. Même si mon script est minuscule je pense qu'il est toujours préférable de préciser l'erreur à gérer que de laisse tout passer ?
Merci en tous cas !! :)
import pathlib
DOSSIER_COURANT = pathlib.Path.cwd()
creation = DOSSIER_COURANT / "pv.txt"
creation.touch(exist_ok=True)
fichier_txt = "pv.txt"
CHOICE = ["1", "2", "3", "4"]
#l'utilisateur fait un choix
#le clacul sera différent selon choix
#lui demander s'il en a d'autre à faire
while True:
user_choice = input("Choix 1 : coef 1.5 / Choix 2 : coef 1.8 / Choix 3 : STOP / Choix 4 : effacer la liste des prix ==> ")
while user_choice not in CHOICE:
user_choice = input("Choix 1 : coef 1.5 / Choix 2 : coef 1.8 / Choix 3 : STOP / Choix 4 : effacer la liste des prix ==> ")
if user_choice not in CHOICE:
print("Rentrez un choix valide.")
if user_choice == "1":
pa = input("Entrez votre prix d'achat : ")
try:
pa = float(pa)
pv = pa * 1.5
print(f"Ton PV devrait être de {pv}")
article = input("code article : ") + " "
with open(fichier_txt, "a") as f:
pv = str(pv) + "\n"
f.write(article)
f.write(pv)
except ValueError:
print("On ne peut rentrer que des chiffres.")
elif user_choice == "2":
pa = input("Entrez votre prix d'achat : ")
try:
pa = float(pa)
pv = pa * 1.8
print(f"Ton PV devrait être de {pv}")
article = input("code article : ") + " "
with open(fichier_txt, "a") as f:
pv = str(pv) + "\n"
f.write(article)
f.write(pv)
except ValueError:
print("On ne peut rentrer que des chiffres.")
elif user_choice == "3":
break
elif user_choice == "4":
with open(fichier_txt, "w") as f:
f.write("")
print("Fin du script !")
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte