Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mes productions en Python, au fur et à mesure du tuto

    11 février 2011 à 8:39:02

    Je posterai ici au fur et à mesure mes nuls programmes au fur et à mesure de la lecture de ce tutoriel.

    Pour l'instant, j'en suis à la lecture des boucles, j'ai fini la page.

    Alors voilà le lien et ne piratez pas mon site où je l'héberge svp...

    C'est un programme sur la conjecture de syracuse.

    Lien du fichier : ICI !

    Dites moi ce que vous en pensez !
    • Partager sur Facebook
    • Partager sur Twitter
      11 février 2011 à 11:24:42

      Salut,

      Est-ce que tu as vérifié que ton code fonctionne?
      Le "for ok in nb" me paraît très bizarre... Il me semble que tu ne puisse pas boucler sur un int. Tu peux boucler sur une chaine de caractère, une liste , un dico etc mais un int non.
      • Partager sur Facebook
      • Partager sur Twitter
        11 février 2011 à 13:00:12

        Mon code fonctionne parfaitement ! C'est après que je le mets en int ! Là ça sert juste à empêcher qu'un petit malin mette des letrres...

        En effet, j'ai essayé if nb=int(nb): mais ça ne marche pas car Python doit imaginer int(nb) et ça fait tout buger...
        • Partager sur Facebook
        • Partager sur Twitter
          11 février 2011 à 13:28:15

          Chez moi ça marche pas (ce qui me paraît logique en fait :-° )

          Traceback (most recent call last):
            File "C:\Documents and Settings\pball
              for ok in nb:
          TypeError: 'int' object is not iterable
          


          Moi j'aurai définit la variable "ok" avant la boucle
          • Partager sur Facebook
          • Partager sur Twitter
            11 février 2011 à 13:38:35

            @Fort en pommes :
            c'est parce que tu es en python 2, la fonction input() ne se comporte pas pareil (essaye de la remplacer par un raw_input, ça marchera).


            Sinon, je trouve le code crade.
            • Partager sur Facebook
            • Partager sur Twitter
            Zeste de Savoir, le site qui en a dans le citron !
              11 février 2011 à 14:09:23

              Je suis du même avis que NoHaR...
              En plus du nombre de lignes inutiles, la boucle infinie à moins que ce soit nécessaire personnellement je suis pas fan non plus. Puis, la fonction print ajoute un saut de ligne par défaut (à moins qu'on fasse en sorte que non), donc ça fait beaucoup de sauts à la ligne là je trouve.
              Voici ton code avec un peu moins de choses inutiles. Enfin là l'affichage est beaucoup trop rapide pour qu'on comprenne quoi que ce soit donc il faudrait régler un peu ça aussi.

              #!/usr/bin/python3.1
              # -*-coding:utf-8 -*
              
              while True:
                  print("Conjecture de Syracuse\n")
                  print("Entrez votre nombre entier\n")
                  nb = input()
                  if nb.isnumeric():
                      nb = int(nb)
                      while nb != 1:
                          if nb % 2 == 0:
                              nb /= 2
                              print(nb)
                          else:
                              nb = (3 * nb) + 1
                              print(nb)
                      print("Nous avons termine !\n")
                  else:
                      print("Tu m'auras pas, petit gamin !\n")
              

              • Partager sur Facebook
              • Partager sur Twitter
                11 février 2011 à 14:26:30

                Bon allé j'y vais de mon code aussi! :p

                Moi je récupère la suite de nombre dans une liste.

                #!usr/bin/env/python
                # -*- coding: utf-8 -*-
                
                nombre=int(raw_input("Entrez un nombre: "))
                
                syracuse=[]
                
                while nombre!=1:
                	if nombre%2==0:
                		nombre=nombre/2
                		syracuse.append(nombre)
                	elif nombre%2!=0:
                		nombre=nombre*3+1
                		syracuse.append(nombre)
                print "La conjecture de syracuse nous donne",syracuse
                
                • Partager sur Facebook
                • Partager sur Twitter
                  11 février 2011 à 14:45:52

                  Juste au cas où, le code de Fort en pommes est en Python 2.x et le mien en Python 3.x, donc choisis la syntaxe que tu veux mais ne mélange pas les deux.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 février 2011 à 16:56:00

                    Vous avez regardé où j'en suis ?

                    if nb.isnumeric():

                    Je ne connais pas cette fonction ! Mais merci, je sais pas comment vous faites pour être ausssi rapides pour répondre !

                    Bah de toute façon je l'améliorai au fur et à mesure du tuto !


                    Ah et je ne savais pas que print ajoutait un saut de ligne !

                    Au fait je fais du python 3.x mais je ne savais pas qu'il y avait de si grandes différences !

                    Ok merci ! :)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      11 février 2011 à 17:21:02

                      Pour les fonctions (enfin ici il s'agit d'une méthode) il te suffit de regarder la documentation Python, tout y est (le lien est pour Python 3.x).
                      Sinon, au contraire, les syntaxes 2.x et 3.x sont très proches. Il y a print, input et range (puis bien sûr quelques autres truc) qui changent, mais pas de quoi fouetter un chat non plus :lol:
                      • Partager sur Facebook
                      • Partager sur Twitter
                        17 février 2011 à 9:35:00

                        Okay merci beaucoup... J'aborde la POO, je vous montrerai une nouvelle création. :)
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Mes productions en Python, au fur et à mesure du tuto

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown