Problème programme Python (débutant)

Résolu/Fermé
xxxpppp Messages postés 6 Date d'inscription vendredi 15 février 2019 Statut Membre Dernière intervention 9 mars 2019 - Modifié le 16 févr. 2019 à 07:18
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 - 9 mars 2019 à 10:54
Bonjour à tous,
J’ai un petit problème avec mon programme sur Python !
Je ne comprend pas pourquoi mon résultat est : <function pgcd at 0x10365f278>
J’aimerais avoir un nombre comme résultat ?


Merci beaucoup pour votre aide !
A voir également:

3 réponses

Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 928
Modifié le 16 févr. 2019 à 08:48
Une fois appliqués mes propres conseils
a = 78
b = 65
def pgcd(n,m):
    if n < m:
        n,m = m,n
    
    while m!=0:
        r,n,m = n%m,m,r
        
    return m
   
print(pgcd(a,b))


mon éditeur me signale un problème à cette ligne
        r,n,m = n%m,m,r

undifined variable 'r'
local variable 'r' is assigned but never used


Là vois tu, je vais te parler d'un que les moins de 40 ans ne peuvent pas connaitre (et encore, le quarantenaire n'avait pas l'âge de coder, moi j'avais 3 ans...).
A l'époque, les capacités de stockage étaient très faibles.
La chasse au gaspillage était à son paroxysme.
Imagine un programme de 1000 lignes, donc 1000 retour chariot, 2ko de perdus, quand une disquette ne pouvait stocker que 360 ko, hou la la.

Je pense que c'est à cause de ça que les codeurs se sont lancé le défit d'écrire le maximum de code sur une ligne.
Aujourd'hui ça fait style, c'est sûr.
Mais encore faut il écrire l'algorithme comme il faut.

Je te conseille donc, de l'écrire sur plusieurs lignes, pour bien décomposer chaque étape, et une fois que ça marche, si après ça t'éclate tu pourras essayer de le remettre sur une seul ligne

1
Merci beaucoup pour votre réponse je vais régler ce problème immédiatement et vous tenir au courant ! Merci encore et bonne journée
0
xxxpppp Messages postés 6 Date d'inscription vendredi 15 février 2019 Statut Membre Dernière intervention 9 mars 2019
16 févr. 2019 à 11:11
a=int(input('Donner a:'))
b=int(input('Donner b:'))
def pgcd(a,b):
    if a<b:
        a,b=b,a #on échange a et b
    while b!=0 :
        r=a%b
        a=b
        b=r
    return (a)
print(pgcd(a,b))


Merci beaucoup pour vos conseilles, grâce à vous mon programme marche!! Je vous remercie encore !! :)
0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 928
16 févr. 2019 à 11:18
De rien
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
9 mars 2019 à 10:54
ou bien
while m!=0:
        n,m = m,n%m
0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 928
16 févr. 2019 à 08:18
Bonjour
pour poster un code, merci de suivre et d'appliquer la procédure décrite ici https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Cela permet en plus de poster un code lisible, indenté (primordial en Python), on peut le copier coller pour tester.

Parce que bêtement, j'ai écrit
return
et toi
returne
et du coup, j'avais la même chose que toi.

Avec un éditeur qui te vérifie la syntaxe en cours de frappe tu ne devrais pas avoir cette erreur.
Perso, je me sers d'anaconda et spider, pour le peu que je code en Python (essentiellement pour le forum) ça me va très bien.

0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 928
Modifié le 16 févr. 2019 à 08:24
Creusons plus loin
tu as défini une fonction avec des paramètres, mais ces paramètres ont le même nom que tes variables globales.
Je pense que Python s'en débrouille très bien, mais le codeur c'est moins sûr.
Pour preuve, puisque la fonction a des paramètres, il faut lui en donner à l'appel, ça tu ne l'as pas fait.
Je te conseille de lire ceci https://courspython.com/fonctions.html
Là encore un bon éditeur te signale un problème.

0
Merci je vais aller lire ça de suite ! Je viens tous juste de débuter pour programmer c’est donc encore très complexe !
0