Problème de déclaration de variable python
frankroland
Messages postés
26
Statut
Membre
-
jee pee Messages postés 31877 Date d'inscription Statut Modérateur Dernière intervention -
jee pee Messages postés 31877 Date d'inscription Statut Modérateur Dernière intervention -
Bonsoir à tous et à toutes !
Je m'excuse pour le fait de poster un souci que je rencontre en programmation python car débutant.
Voilà mon souci :
Je tente de créer un script me permettant d'entrer deux nombres au hasard. Et toutefois que les nombres sont égaux, il m'affiche que ces nombres sont égaux tout en m'affichant les nombres choisis.
Le problème se situe au niveau de la déclaration des variables.
1- Image du script
2- Résultat après exécution.
Alors ma question est la suivante : comment puis-je, lorsque l'utilisateur prends deux nombres au hasard que ce soit deux nombre entiers, je n'ai pas par exemple 2.0 au lieu de 2 ou que s'il choisisse au hasard deux nombres différent soit un à virgule et l'autre sans virgule le script exécuté me donne exactement ce qu'il a tapé au clavier ?

Je m'excuse pour le fait de poster un souci que je rencontre en programmation python car débutant.
Voilà mon souci :
Je tente de créer un script me permettant d'entrer deux nombres au hasard. Et toutefois que les nombres sont égaux, il m'affiche que ces nombres sont égaux tout en m'affichant les nombres choisis.
Le problème se situe au niveau de la déclaration des variables.
1- Image du script
2- Résultat après exécution.
Alors ma question est la suivante : comment puis-je, lorsque l'utilisateur prends deux nombres au hasard que ce soit deux nombre entiers, je n'ai pas par exemple 2.0 au lieu de 2 ou que s'il choisisse au hasard deux nombres différent soit un à virgule et l'autre sans virgule le script exécuté me donne exactement ce qu'il a tapé au clavier ?
1 réponse
-
Bonjour,
Comme tu ne pourras pas savoir une fois passé en float s'il a saisi 2 ou 2.0, le mieux c'est de conserver la chaine de l'input et faire la conversion en float après.
try: cx = input("n1 ") x = float(cx) cy = input("n2 ") y = float(cy) if (x == y) .... print(cx,cy,"sont positifs et égaux") except ValueError: print("Mauvaise saisie")
Par contre je ne comprends pas l'erreur sur 2.5 ????
Plutot que des images, il faut mettre le code sur le forum. Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect<> ▼
permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature (C, Python, Shell, ...).
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
-
- Bonjour à tous les 3
vue sa capture, on voit qu'il est sur Windows.
Python n'est pas mon fort, mais pour les langages que j'utilise régulièrement, si windows est configuré avec la virgule comme symbole décimal, 2.5 ne peut pas être converti en float alors que 2,5 si.
J'aurais eu la même question que yg_be du coup
Peut-être qu'en affichant l'erreur ça pourrait aiguiller vers la solutiontry: cx = input("n1 ") x = float(cx) cy = input("n2 ") y = float(cy) if (x == y): print(cx,cy,"sont positifs et égaux") except ValueError as e: print(e)
-