Problème de déclaration de variable python

frankroland Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
jee pee Messages postés 41561 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 ?

1 réponse

jee pee Messages postés 41561 Date d'inscription   Statut Modérateur Dernière intervention   9 729
 
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
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
bonjour,
as-tu essayé
2,5
?
0
jee pee Messages postés 41561 Date d'inscription   Statut Modérateur Dernière intervention   9 729 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Salut, oui avec 2,5 cela déclencherait l'exception, mais là il y a 2.5
0
Utilisateur anonyme > jee pee Messages postés 41561 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 solution
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 as e:
    print(e)
0
jee pee Messages postés 41561 Date d'inscription   Statut Modérateur Dernière intervention   9 729 > Utilisateur anonyme
 
dans le fond, jamais je ne me suis occupé du paramétrage de la virgule en mode ligne de commande

il faudrait que franckroland affiche l'exception, puisque moi je n'ai pas l'erreur

ou alors il a changé le source entre les 2 passages ?
0