IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Créer des boutons de calculatrice qui affichent directement des nombres de type float [Python 2.X]


Sujet :

Python

  1. #1
    Membre à l'essai Avatar de Kaa'dem-2072
    Homme Profil pro
    Biogärtner
    Inscrit en
    Décembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Biogärtner
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2015
    Messages : 24
    Points : 18
    Points
    18
    Par défaut Créer des boutons de calculatrice qui affichent directement des nombres de type float
    Bonjour à tous,

    Je suis Kaa'dem-85, j'ai 43 ans et je suis nouveau sur ce forum. Il s'agit en l'occurrence de mon premier message. Il y a quelques mois, j'ai découvert le langage Python et même si je n'évolue pas du tout dans le domaine de l'informatique (professionnellement parlant), je prends beaucoup de plaisir à coder.
    Je me suis lancé dans l'élaboration d'une calculatrice toute simple mais malheureusement depuis quelques jours, je bute sur un écueil. Lorsque j'effectue cette opération : 8/3, il m'affiche 2, ce qui signifie qu'il s'agit d'une division de deux nombres "int". Si je divise 8 par 2.5, pas de problème, j'obtiens un nombre float. Comment faire pour que le chiffre 8 que j'affiche en premier soit directement un nombre float? En fait, à l'origine, ce '8' est une chaine de caractère. J'ai beau essayer des bouts de code dans tous les sens, je ne m'en sors pas. J'ai l'impression que c'est là que le problème se situe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def cliquer(event):
        affichage.delete(1.0, 'end')
        operation.append(event.widget.cget('text'))
        affichage.insert(1.0, ''.join(operation))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def calculer():
        affichage.delete(1.0, 'end')      
        resultat = eval(''.join(operation))
        affichage.insert(1.0, (resultat))
    Merci d'avance pour votre aide et bonne soirée.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur banc de test
    Inscrit en
    Mai 2014
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur banc de test
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 199
    Points : 482
    Points
    482
    Par défaut
    Bonsoir et bienvenu,

    je suppose que vous travaillez sur la version python 2.

    2 solutions s'offrent à vous (en dehors de passer à la version 3):

    Sous python 2 comme en langage C l'opérateur conserve le type int si le diviseur et le dividende sont tous deux entiers.

    Il faut donc forcer au moins un des deux éléments en flottant à l'aide de la fonction float()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    8 / 3.0
    2.6666666666666665
    8 / float(3)
    2.6666666666666665
    8. / 3
    2.6666666666666665
    float(8) / 3
    2.6666666666666665
    Soit importer une fonctionnalité future pour avoir le comportement similaire à la version 3:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from __future__ import division
    8/3
    2.6666666666666665
    Pour plus d'informations : https://docs.python.org/2/library/__future__.html

  3. #3
    Membre à l'essai Avatar de Kaa'dem-2072
    Homme Profil pro
    Biogärtner
    Inscrit en
    Décembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Biogärtner
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2015
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Merci pour votre réponse. Dès que j'aurai un peu de temps, je modifierai mon code avec vos informations et je vous tiendrai au courant du résultat.
    @+

  4. #4
    Membre à l'essai Avatar de Kaa'dem-2072
    Homme Profil pro
    Biogärtner
    Inscrit en
    Décembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Biogärtner
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2015
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Bonjour YCL-1

    J'ai importé dans mon code la fonctionnalité future et le résultat est impeccable. Il ne me reste plus qu'à faire fonctionner d'autres boutons récalcitrants tels que la racine carré ou le bouton effacer. Bref, j'ai encore de quoi m'occuper et je n'hésiterai pas à faire appel à la communauté en cas de blocage.
    Merci encore et bon weekend.

    Kaa'dem-85 (https://kaadem.wordpress.com)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. programme c qui affiche les dix nombre suivants
    Par psychologue dans le forum Débuter
    Réponses: 5
    Dernier message: 31/01/2010, 16h45
  2. Réponses: 0
    Dernier message: 30/11/2009, 13h13
  3. Réponses: 8
    Dernier message: 15/09/2009, 14h12
  4. [PHP 5.2] Mon code qui affiche aléatoirement des images
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 07/07/2009, 17h01
  5. utiliser des morceaux d'une image pour faire des boutons
    Par Battosaiii dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 14/12/2005, 00h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo