Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2671 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Débutant en Python

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Débutant en Python

n°2165572
cuati
Posté le 27-11-2012 à 08:35:44  profilanswer
 

Bonjour,
je suis débutant en Python, j'essaie d'apprendre seul avec des livres...
Dans mon premier achat "Programmation en Python pour les mathématiques" j'ai un exercice résolu que je ne comprends pas.
En fait je le comprend très bien mais cela ne fonctionne pas :
Ce sont des exemples très simples, on a une fonction "reste(a,b)"  qui revoie le reste dans la division euclidienne de a par b (avec soustractions à la place de %), voici les solutions du livre :

Code :
  1. def reste(a, b):
  2.     if b == 0:
  3.         return None
  4.     while a >= b:
  5.     a = a - b
  6.     return a


Et une fonction "pgcd(a,b)" qui renvoie, comme son nom l'indique, le pgcd de a et b :

Code :
  1. def pgcd(a, b):
  2.     while b > 0:
  3.         a, b =b, reste(a, b)
  4.     return a


Mon problème n'est pas d'un point de vue algorithmique, quand j’exécute la fonction pgcd avec IDLE (Python3.3) j'ai un message d'erreur. J'ai essayé d'ajouter un "import reste" au début du programme pgcd, je n'ai plus de message d'erreur mais le programme ne s'achève pas...
Ma question est donc la suivante : comment fait-on, en Python, pour faire appelle à un programme à l'intérieur d'un autre programme ?

mood
Publicité
Posté le 27-11-2012 à 08:35:44  profilanswer
 

n°2165799
masklinn
í dag viðrar vel til loftárása
Posté le 28-11-2012 à 12:42:52  profilanswer
 

C'est pas très clair en fait, au niveau physique (en terme de fichiers sur ton disque), où sont "reste" et "pgcd"? Sont-ils dans le même fichier, dans des fichiers différents, autre?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2165928
cuati
Posté le 28-11-2012 à 19:59:07  profilanswer
 

Bonsoir et merci pour la réponse.
Désolé de ne pas être très clair.... je m'en suis douté quand j'ai vu que personne ne répondait.
Alors la fonction pgcd est écrite dans le fichier pgcd.py et se trouve sur mon bureau. Même chose pour la fonction reste, elle est dans un fichier reste.py sur mon bureau aussi.
Mais peut être que ce n'est pas comme cela qu'il faut s'y prendre ?

n°2165947
masklinn
í dag viðrar vel til loftárása
Posté le 28-11-2012 à 21:33:18  profilanswer
 

cuati a écrit :

Bonsoir et merci pour la réponse.
Désolé de ne pas être très clair.... je m'en suis douté quand j'ai vu que personne ne répondait.
Alors la fonction pgcd est écrite dans le fichier pgcd.py et se trouve sur mon bureau. Même chose pour la fonction reste, elle est dans un fichier reste.py sur mon bureau aussi.
Mais peut être que ce n'est pas comme cela qu'il faut s'y prendre ?


Dépend de plein de choses. Je présume que le livre mettait les deux dans le même fichier.
 
Pour commencer, en haut de pgcd.py ajoute "import reste", et replace l'appel "reste(a, b)" par "reste.reste(a, b)" et vois ce que ça fait.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2166244
cuati
Posté le 01-12-2012 à 09:15:33  profilanswer
 

Merci beaucoup, ça marche ! :D

n°2199455
yvkoe
Posté le 05-08-2013 à 17:18:40  profilanswer
 

Bonjour déjà en respectant l'indentation cela marche mieux...

Code :
  1. def reste(a, b):
  2.     if b == 0:
  3.         return None
  4.     while a >= b:
  5.         a = a - b
  6.     return a


et puis si tu l'importe ensuite pour le pgcd cela marche encore mieux... :sol:

Code :
  1. import reste
  2. def pgcd(a, b):
  3.     while b > 0:
  4.         a, b =b, reste.reste(a, b)
  5.     return a


et voilou....

Message cité 1 fois
Message édité par yvkoe le 05-08-2013 à 17:30:29
n°2199457
masklinn
í dag viðrar vel til loftárása
Posté le 05-08-2013 à 17:54:40  profilanswer
 

yvkoe a écrit :

Bonjour déjà en respectant l'indentation cela marche mieux...

Code :
  1. def reste(a, b):
  2.     if b == 0:
  3.         return None
  4.     while a >= b:
  5.         a = a - b
  6.     return a


et puis si tu l'importe ensuite pour le pgcd cela marche encore mieux... :sol:

Code :
  1. import reste
  2. def pgcd(a, b):
  3.     while b > 0:
  4.         a, b =b, reste.reste(a, b)
  5.     return a


et voilou....


8 mois en retard alors que la réponse avait déjà été donnée, c'était peut-être pas nécessaire [:petrus75]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2199510
yvkoe
Posté le 06-08-2013 à 12:03:13  profilanswer
 

Je passais par là...

n°2199514
masklinn
í dag viðrar vel til loftárása
Posté le 06-08-2013 à 12:42:18  profilanswer
 

yvkoe a écrit :

Je passais par là...


Tu passais par là et hop tu remontes des threads de plus de 6 mois comme ça [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Débutant en Python

 

Sujets relatifs
[Python] Programme débutantPython débutant separateur
[Python] Aide pour un programme de débutant(PYTHON) Un débutant et ses IF
Supra débutant SVP (QT - PYTHON)[Debutant] Python + MYSQL Python, erreur syntaxe dans requette MYSQL
Python pour débutantDébutant Python => Passage de paramètre
[python] (debutant) besoin d'un coup de maindebutant python, DP
Plus de sujets relatifs à : Débutant en Python


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR