Environnement pyzo

Bonjour
J'ai un souci avec un programme en python que j'ai récupéré, en effet je n'arrive pas à le faire tourner dans Pyzo.
1525211761-pyzo.png

Le but de ce programme est de retranscrire le crible d'[large]É[/large]rastothène.

On créé d'abord la fonction [large]É[/large]rastothène puis, en fin de programme, je l'appelle pour n=10 mais ça ne fonctionne pas.
A priori, ce qui gêne serait le return mais je ne comprends pas pourquoi.
Pour info, j'ai récupéré le programme sur le site suivant
http://python.jpvweb.com/python/mesrecettespython/doku.php?id=liste_des_nombres_premiers
J'aimerais trouver ce qui cloche...
Merci.

[En toute occasion, Ératosthène (-276,-194) prend une majuscule. AD]

Réponses

  • Bonjour ,

    effectivement tu ne récupères pas le retour de la fonction

    il suffit de changer ton appel en

    t = eratosthene(10)
    print (t)

    Cordialement
  • Merci FM, cela fonctionne parfaitement maintenant grâce à ta suggestion.

    Pour que je comprenne bien mon erreur, qu'est ce qui clochait avant exactement?
  • Bonjour,

    Si tu demandes à quelqu'un de faire un travail, mais que tu ne lui demandes pas de te donner le résultat après, tu n'as rien, c'est normal.

    Cordialement,

    Rescassol
  • La variable tableau est locale dans le sous-programme eratosthene, c'est ça ?

    e.v.
    Personne n'a raison contre un enfant qui pleure.


  • oui, elle est locale
  • Bonjour,

    j'ai un autre problème un peu similaire avec ce petit programme permettant de calculer un 0 par dichotomie sur la fonction x²-10.

    Lorsque j'appelle la fonction dichobis directement dans le programme, ça marche parfaitement :

    1525251916-dycho1.png

    Par contre, si j’essaie d'améliorer en rajoutant un module pour que l'utilisateur puisse lui même rentrer les paramètres de la fonction dichobis, ça ne marche pas :

    1525252047-dycho2.png
  • Quelle version de python utilises-tu ?
  • Normal, la definition de la fonction f est ecrasee par le input.
  • Effectivement , f a deux significations
    Il te suffit de faire

    e=float(input("e= "))
    g=float(input("g= "))
    p=float(input("p= "))

    print (dichobis (e,g,p))
  • Lol, j'ai un peu honte...

    Comme quoi rien ne remplace un regard extérieur...

    Merci à tous!
  • Il n'y a pas à avoir honte . Ce genre d'erreur arrive à tout le monde et il faut un peu d'expérience pour exploiter les messages d'erreur délivrés .
    Par contre , en utilisant des identificateurs un peu plus longs et plus parlants ....
Connectez-vous ou Inscrivez-vous pour répondre.