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 :

ERREURS en python


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Points : 19
    Points
    19
    Par défaut ERREURS en python
    Bonsoir,

    J'ai une erreur python dont je n'arrive pas à trouver l'origine

    elif numero_gagnant % 2 == nombre_mise % 2:
    TypeError: not all arguments converted during string formatting

    Si quelqu'un savait de quoi il s'agit,

    Merci,

    SR

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Bonsoir,

    Comment sont créées tes variables numero_gagnant et nombre_mise ?

    Je dis ça parce-que si je teste sur mon interpréteur, ça me donne une erreur si par exemple j'essaye de faire une opération numérique avec une chaîne de caractères...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> "ldfj"%2
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: not all arguments converted during string formatting
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Points : 19
    Points
    19
    Par défaut
    En gros j'ai repris le corrigé du livre de vincent le goff septembre 2011 apprenez à programmer en python en voulant simplifier la solution de la page 92 dont voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    import os 
     
    from random import randrange
    from math import ceil
     
    argent = 1000
    continuer_partie = True
     
    print("vous vous installez à la tablette de roulette avec" , argent , "$")
     
    nombre_mise = -1
    nombre_mise = input ("taper le nombre sur lequel vous voulez miser (entre 0 et 49) : ")
     
    mise = 0
    mise = input ("taper le montant de votre mise : ")
     
    numero_gagnant = randrange(50)
    print ("la roulette tourne....... ..... et s'arrete sur le numero" , numero_gagnant)
     
    if numero_gagnant == nombre_mise :
               print ("felicitations ! vous obtenez" , mise * 3, "$ !")
               argent += mise * 3
    elif numero_gagnant % 2 == nombre_mise % 2:
               mise = ceil(mise * 0.5)
               print ("vous avez mise sur la bonne couleur vous obtenez" , mise , "$")
               argent += mise 
    else :
               print ("desole l'ami ce n'est pas pour cette fois; vous perdez votre mise ")
               argent -= mise
     
    if argent <= 0 :
                  print ("vous etes ruine ! c'est la fin de la partie ")
                  continuer_partie = False
    else :
                  print ("vous avez à present " , argent , "$")
                  quitter = input ("souhaitez vous quitter le casino (o/n) ? ")
                  if quitter == "o" or quitter == "0" :
                     print ("vous quitter le casino avec vos gains ")
                     continuer_partie = False 
     
    os.system("pause")
    et sur ce code, j'ai cette erreur

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Ce code utilise l'ancienne version du langage, et tu dois remplacer input par int(input(...)) là où on demande un entier...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 054
    Points : 9 394
    Points
    9 394
    Par défaut
    D'après ce qui est dit dans ce tutoriel https://python.developpez.com/cours/...3/?page=page_8, la fonction input renvoie une CHAINE de caractères.
    (String en anglais ...) on retrouve le mot string que tu avais dans ton message d'erreur et qui était quand même un sacré indice.

    Ce que tu voudrais faire, c'est tester si 2 nombres sont de même parité,
    Mais ce que tu fais, c'est tester si 2 chaines sont de même parité. Et l'opérateur % appliqué sur une chaîne, ça plante.

    Pour t'en assurer, la recette magique qui aide toujours en phase de débuggage, c'est d'utiliser la fonction print.
    En ligne 13, met : print ( type( nombre_mise) )
    Et regarde ce qu'il t'indique.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Points : 19
    Points
    19
    Par défaut
    la solution de fred marche; la votre renvoie la même erreur
    Pourtant le livre de dec 2011 c'est le python 3 le 4 n'existe pas.Le livre serait t'il déjà obsolète ?
    Merci pour la réponse

  7. #7
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    C'est sans doute la version 2.6 ou 2.7, et ces versions sont obsolètes pour les débutants. Pour ton apprentissage il est souhaitable d'abandonner ce tutoriel.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Points : 19
    Points
    19
    Par défaut
    Quel est d'après vous le meilleur ouvrage pour débutants ?

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 105
    Points : 145
    Points
    145
    Par défaut
    Bonjour,

    Je dirai cliquer sur le bouton "LIVRES PYTHON" dans le menu du forum en haut de page.
    Sinon Apprendre Python 3 est bien, tu le trouveras dans la liste des livres du forum. ^^

    Salutations.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 57
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par stephcast Voir le message
    Quel est d'après vous le meilleur ouvrage pour débutants ?
    tu aura du mal à trouver de l'info même sur le site de python ou les forum sur nombre de particularité usage des decorateurs & autre property ,
    pour ma part je privilégie les livre qui opte pour d'un coté le detail exhautif des fonctions et de l'autre l'apprentissage par l'exemple qui ne l'est pas .. avoir 2 livres séparé

    Pyton concentré & cookbook chez o'reilly

Discussions similaires

  1. ignorer erreur keyError python avec gensim
    Par africanwinners dans le forum Calcul scientifique
    Réponses: 0
    Dernier message: 20/01/2017, 16h29
  2. [Python 3.X] Erreur programmation python.
    Par nico240990 dans le forum Général Python
    Réponses: 2
    Dernier message: 28/01/2015, 15h52
  3. Message d'erreur en python que je voudrais comprendre
    Par comme de bien entendu dans le forum Général Python
    Réponses: 3
    Dernier message: 20/08/2013, 10h14
  4. Python + Pmw erreur Pmw.initialise(root)
    Par zezitinho dans le forum Tkinter
    Réponses: 5
    Dernier message: 07/04/2006, 13h27
  5. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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