Problème de déclaration de variable python

Fermé
frankroland Messages postés 16 Date d'inscription mardi 15 décembre 2009 Statut Membre Dernière intervention 27 décembre 2021 - 27 déc. 2021 à 21:48
jee pee Messages postés 40749 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 3 février 2025 - 28 déc. 2021 à 11:15
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 40749 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 3 février 2025 9 518
28 déc. 2021 à 00:31
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 23457 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 février 2025 1 564
28 déc. 2021 à 08:53
bonjour,
as-tu essayé
2,5
?
0
jee pee Messages postés 40749 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 3 février 2025 9 518 > yg_be Messages postés 23457 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 février 2025
28 déc. 2021 à 10:01
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 40749 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 3 février 2025
28 déc. 2021 à 10:21
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 40749 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 3 février 2025 9 518 > Utilisateur anonyme
28 déc. 2021 à 11:15
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