problème python
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

problème python



  1. #1
    barbbatruc

    problème python


    ------

    Bonjour tout le monde,

    Je viens d'installer python sur mon ordinateur, version 2.7.9 et j'ai un problème avec la division...
    Les resultats que j'obtiens après une division sont tous des entiers, ainsi quand je demande 3/10, je reçois 0
    quand je demande 5/3, je reçois 1.
    Comment régler ce problème?
    J'ai remarqué que si je met un ".0" au dénominateur (ex: 5/3.0) il me rend un chiffre après la virgule.
    Néanmoins ce n'est pas pratique quand la division s'effectue avec des variables.

    Merci de votre aide

    -----

  2. #2
    fred1599

    Re : problème python

    En utilisant python 3.x

  3. #3
    Calvert

    Re : problème python

    En utilisant python 3.x
    Réponse assez inutile, surtout que le problème ne vient rigoureusement pas de python, mais d'une incompréhension de types de base en python.

    Quand on écrit 5/3 en python, 5 et 3 sont des entiers, et python fait donc une division entière. Le résultat attendu est bien 0. Le reste (3), peut s'obtenir en faisant 5%3.

    Quand on écrit 5./3., python comprend que 5. et 3. sont des "floats", et va donc faire une division avec des floats, et le résultat sera bien 1.666666...

    Quand on écrit 5/3., python comprend que 5 est un entier et 3. un float. Il ne sait pas faire cette division, il convertit donc l'entier en float, et le résultat est le même que ci-dessus.

    De la même manière avec des variables:

    Si:
    Code:
    a=3
    b=5
    c=3.
    d=5.
    on aura les résultats : a/b = 0, c/d = 1.6666666... et a/d= 1.666666.

  4. #4
    fred1599

    Re : problème python

    Réponse assez inutile
    Réponse loin d'être inutile, merci de ne pas sous estimée une réponse avant d'avoir bien analysé le 1er topic.

    Étant débutant sur le langage de programmation python, il sera fortement recommandé de se mettre à la version 3.x python...

    Avec cette version il est aucunement besoin de placer un '.' pour expliciter le type float. Pour cela un simple interpréteur, fait toute la démonstration.

    Code:
    >>> 5/3
    1.6666666666666667
    >>> 5./3
    1.6666666666666667
    >>> 5//3
    1
    >>> 5%3
    2
    Il n'est à 99% plus justifié d'utiliser cette version, à qui il manque beaucoup de mises à jour concernant des modules, mais aussi empêche l'utilisation de nouveaux modules n'existant pas avec l'ancienne version.

    Dans le cas de ce langage, si ! Cela va bien dépendre de la version et non de type.

    Merci de réfléchir à la réponse avant de là critiquer... car si tu t'étais renseigné sur les différences entre ces deux versions, tu n'aurais pas répondu une réponse inadaptée à son problème, bien que théoriquement elle se tiendrait pour d'autres langages que je connais aussi très bien.

  5. A voir en vidéo sur Futura
  6. #5
    mickan

    Re : problème python

    Bonjour,

    Code:
    c = a / (b * 1.0)
    ou bien,

    Code:
    from __future__ import division
    
    print 5/3

  7. #6
    Calvert

    Re : problème python

    La question étant ici "pourquoi mon code réagit-il de cette manière avec python 2.7", et pas "vaut-il mieux utiliser python 2.7 que 3.x", je persiste.

    barbbatruc est libre d'utiliser le python qu'il souhaite, et de comprendre comment son interpréteur réagit.

    Peut-être a-t-il d'excellentes raisons d'utiliser ce python-là. La plupart des distributions python installées par défaut dans les écoles/universités/instituts de recherche est python 2.7 (voire 2.6), et il peut être délicat pour un débutant d'installer une version ultérieure.

  8. #7
    fred1599

    Re : problème python

    La plupart des distributions python installées par défaut dans les écoles/universités/instituts de recherche est python 2.7 (voire 2.6), et il peut être délicat pour un débutant d'installer une version ultérieure.
    Parlons de ce qu'on connaît, c'est faux ! Et je suis bien placé pour le savoir... Qui puis est rien est difficile concernant l'installation.

    barbbatruc est libre d'utiliser le python qu'il souhaite, et de comprendre comment son interpréteur réagit.
    Tout à fait, sauf quand on ne connaît pas la différence entre ces deux versions. En tant que débutant (plus en programmation que dans le langage) on a pas toujours envie de s’embarrasser avec des petits détails techniques. Surtout qu'une simple version permet d'éviter ces désagréments.

    Maintenant il peut effectivement avoir besoin de cette version, mais ça doit être une excellente raison, comme par exemple un développeur ayant développé avec python 2.5 et voulant se mettre à jour avec la version 2.7 ce qui ne semble pas être le cas ici.

    Je rajoute aussi que malgré tes explications correctes, ça ne résout malheureusement pas son problème, où il exprime déjà avoir essayé avec le '.'

    C'est Mickan avec sa deuxième solution, qui est un peu du bricolage, mais qui fonctionne qu'on peut résoudre cela...

  9. #8
    Calvert

    Re : problème python

    Parlons de ce qu'on connaît, c'est faux ! Et je suis bien placé pour le savoir...
    Moi aussi, et j'affirme que c'est vrai... Pour avoir travailler y compris sur de grandes fermes de calcul, il arrive souvent de ne pas avoir mieux que python 2.7 sur ces machines... Bref...

  10. #9
    barbbatruc

    Re : problème python

    Merci à vous de m'avoir répondu. Je ne connaissais pas cette différence entre les différentes versions.
    Je n'ai pas vraiment choisi la version 2.7, j'ai simplement télécharger le premier lien que j'ai trouvé pour m'entrainer un peu chez moi.
    Merci encore et bonnes fêtes à tous!

  11. #10
    yoda1234

    Re : problème python

    Bonjour,

    je suis tombé sur ça : http://sametmax.com/les-articles-les...ts-sur-python/
    Citation Envoyé par Sam
    J’ai beau régulièrement pointer vers la section Cours et tutos, je sens bien que les gens n’en bénéficient pas autant qu’ils le devraient.

    Une des raisons est la quantité d’info à lire.

    Ok, voici donc une sélection d’articles, qui ne sont pas forcément orientés débutants. Ce sont les trucs à maîtriser. Pas tout de suite. Pas tout d’un coup. Mais au final, un programmeur Python doit savoir ça.
    Là où l'ignorance est un bienfait, c'est de la folie d'être sage (Thomas Gray).

  12. #11
    polo974

    Re : problème python

    Citation Envoyé par Calvert Voir le message
    La question étant ici "pourquoi mon code réagit-il de cette manière avec python 2.7", et pas "vaut-il mieux utiliser python 2.7 que 3.x", je persiste.
    ...
    Non, la question était:
    Citation Envoyé par barbbatruc Voir le message
    Bonjour tout le monde,
    ...
    Comment régler ce problème?
    ...
    Merci de votre aide
    Par contre il faut faire attention à ce qu'on télécharge: toujours se servir à la source (ici https://www.python.org/downloads/) et jamais sur des sites qui bidouillent des berk-ware dans les installateurs qu'ils proposent...
    Jusqu'ici tout va bien...

  13. #12
    Calvert

    Re : problème python

    Non, la question était:
    Citation Envoyé par barbbatruc
    Bonjour tout le monde,
    ...
    Comment régler ce problème?
    ...
    Merci de votre aide
    Alors la réponse est au poste 5, ou encore, si on veut, utiliser https://docs.python.org/2/library/functions.html#float. Mais comme je l'ai déjà dit, c'est sans importance. Sans contexte, on ne peut pas simplement répondre "utiliser python 3", parce qu'il m'est arrivé (très souvent), de me retrouver sur des machines avec de très vieux python installés, et pas de solutions simples pour obtenir des distributions plus récentes.

  14. #13
    polo974

    Re : problème python

    Citation Envoyé par Calvert Voir le message
    Alors la réponse est au poste 5, ou encore, si on veut, utiliser https://docs.python.org/2/library/functions.html#float.
    Ou au second...
    Mais comme je l'ai déjà dit, c'est sans importance.
    Alors pourquoi insister?...
    Sans contexte, on ne peut pas simplement répondre "utiliser python 3", parce qu'il m'est arrivé (très souvent), de me retrouver sur des machines avec de très vieux python installés, et pas de solutions simples pour obtenir des distributions plus récentes.
    et moi je bosse encore avec du 2.4, du 2.5, et les suivants...

    Mais le contexte (tardif) prouve finalement que la réponse "utiliser python 3" est la meilleure:
    Citation Envoyé par barbbatruc Voir le message
    Merci à vous de m'avoir répondu. Je ne connaissais pas cette différence entre les différentes versions.
    Je n'ai pas vraiment choisi la version 2.7, j'ai simplement télécharger le premier lien que j'ai trouvé pour m'entrainer un peu chez moi.
    Merci encore et bonnes fêtes à tous!
    Pour tout nouveau venu dans le monde python, il vaut mieux prendre la dernière version 3.
    Jusqu'ici tout va bien...

  15. #14
    Calvert

    Re : problème python

    Alors pourquoi insister?...
    Ce n'est pas moi qui ai remonté le fil ! ...

  16. #15
    polo974

    Re : problème python

    Citation Envoyé par Calvert Voir le message
    Ce n'est pas moi qui ai remonté le fil ! ...
    Ah, mais moi je trouve qu'il est important de dire qu'il vaut mieux démarrer avec python3 ...
    Jusqu'ici tout va bien...

Discussions similaires

  1. python problème algo nombre chanceux
    Par jordan43 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 24/12/2014, 09h50
  2. Problème en Python
    Par pointfixe dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 12/12/2014, 10h36
  3. [Python] Problème de rafraichissement de l'heure
    Par eliobou dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 20/10/2013, 10h33
  4. petit problème algorithme euclide (python)
    Par souchi6 dans le forum Programmation et langages, Algorithmique
    Réponses: 12
    Dernier message: 23/10/2012, 21h10
  5. Problème programmation C++/Python
    Par Sylspace dans le forum Programmation et langages, Algorithmique
    Réponses: 12
    Dernier message: 31/08/2011, 19h24