Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Python / postez ici !

    22 décembre 2014 à 14:29:43

    N'utilise pas ça et remplace par input("appuyez sur une touche pour quitter"). C'est un problème excessivement récurrent, tu aurais pu faire une recherche avant de poster.
    • Partager sur Facebook
    • Partager sur Twitter
      23 décembre 2014 à 12:48:38

      Bonjour à tous,

      je me demandais... si j'ai un nombre obtenu avec une précision 10 chiffres après la virgule, quelle sera la précision de sa racine carré ?

      notamment 7.62846822 précision 10e-8

      sa racine 2.76196818014 ... je m'arrête où en terme de chiffres significatifs ?

      Merci d'avance, et bonnes fêtes à tous !

      • Partager sur Facebook
      • Partager sur Twitter
        24 décembre 2014 à 15:24:11

        J'ai relevé des erreurs...

        au chapitre 'Notre premier objet : les chaînes de caractères':

        # formatage d'une adresse
        adresse = """
          {no_rue}, {nom_rue}
          {code_postal} {nom_ville} ({pays})"""
          .format(no_rue=5, nom_rue="rue des Postes", code_postal=75003, nom_ville="Paris", pays="France")
        print(adresse)

        c'est plutôt ça me semble t-il:

        # formatage d'une adresse
        adresse = """
            {no_rue}, {nom_rue}
            {code_postal} {nom_ville} ({pays})"""
        print(adresse.format(no_rue=5, nom_rue="rue des Postes", code_postal=75003, nom_ville="Paris", pays="France"))
        

        ou ca:

        # formatage d'une adresse
        adresse = """
            {no_rue}, {nom_rue}
            {code_postal} {nom_ville} ({pays})""".format(no_rue=5, nom_rue="rue des Postes", code_postal=75003, nom_ville="Paris", pays="France")
        print(adresse)



        ici aussi... :)

        >>> minuscules = "une chaine en minuscules"
        >>> minuscules.upper() # Mettre en majuscules
        'UNE CHAINE EN MINUSCULES'
        >>> minuscule.capitalize() # La première lettre en majuscule
        'Une chaine en minuscules'
        >>> espaces = "   une  chaine avec  des espaces   "
        >>> espaces.strip() # On retire les espaces au début et à la fin de la chaîne
        'une  chaine avec  des espaces'
        >>> titre = "introduction"
        >>> titre.upper().center(20)
        '    INTRODUCTION    '
        >>>

        il manque un 's' a minuscule de:

        minuscule.capitalize() # La première lettre en majuscule
        minuscules.capitalize() # La première lettre en majuscule

         Si j'en vois d'autres je compléterai :)

         update le 25/12/14:

        Encore une petite... :)

        au chapitre 'Les listes et tuples (2/2)':

        # On change le sens de l'inventaire, la quantité avant le nom
        inventaire_inverse = [(qtt, nom_fruit) for nom_fruit,qtt in inventaire]
        # On trie l'inventaire inversé dans l'ordre décroissant
        inventaire_inverse.sort(reverse=True)
        # Et on reconstitue l'inventaire
        inventaire = [(nom_fruit, qtt) for qtt,nom_fruit in inventaire_inverse)]

        Sur la dernière ligne il y a une erreur:

        inventaire = [(nom_fruit, qtt) for qtt,nom_fruit in inventaire_inverse)]
        inventaire = [(nom_fruit, qtt) for qtt,nom_fruit in inventaire_inverse]


        update du 26-12-2014: encore une petite dans le chapitre 'Les Dictionnaires'

        >>> print("Voici", "un", "exemple", "d'appel", sep=" >> ", end= -\n")
        Voici >> un >> exemple >> d'appel -
        >>>

        en fait ca doit etre:

        >>> print("Voici", "un", "exemple", "d'appel", sep=" >> ", end=" -\n")
        Voici >> un >> exemple >> d'appel -
        >>>

        Si ça peut aider les débutants comme moi hihihihiii


        -
        Edité par amt3ch 26 décembre 2014 à 20:45:39

        • Partager sur Facebook
        • Partager sur Twitter
          26 décembre 2014 à 12:33:25

          La réponse à la question pour laquelle on veut savoir ce qui identifie un bloc est fausse. On peut cocher les deux points OU l'indentation car le programme ne fonctionnera pas qu'on oublie l'un ou l'autre. J'ai donc mis au pif l'indentation et j'ai donc eu faux.
          • Partager sur Facebook
          • Partager sur Twitter
          On sait jamais.
            26 décembre 2014 à 12:37:44

            amt3ch a écrit:

            J'ai relevé des erreurs...

            au chapitre 'Notre premier objet : les chaînes de caractères':

            # formatage d'une adresse
            adresse = """
              {no_rue}, {nom_rue}
              {code_postal} {nom_ville} ({pays})"""
              .format(no_rue=5, nom_rue="rue des Postes", code_postal=75003, nom_ville="Paris", pays="France")
            print(adresse)

            c'est plutôt ça me semble t-il:

            # formatage d'une adresse
            adresse = """
                {no_rue}, {nom_rue}
                {code_postal} {nom_ville} ({pays})"""
            print(adresse.format(no_rue=5, nom_rue="rue des Postes", code_postal=75003, nom_ville="Paris", pays="France"))
            

            ou ca:

            # formatage d'une adresse
            adresse = """
                {no_rue}, {nom_rue}
                {code_postal} {nom_ville} ({pays})""".format(no_rue=5, nom_rue="rue des Postes", code_postal=75003, nom_ville="Paris", pays="France")
            print(adresse)



            ici aussi... :)

            >>> minuscules = "une chaine en minuscules"
            >>> minuscules.upper() # Mettre en majuscules
            'UNE CHAINE EN MINUSCULES'
            >>> minuscule.capitalize() # La première lettre en majuscule
            'Une chaine en minuscules'
            >>> espaces = "   une  chaine avec  des espaces   "
            >>> espaces.strip() # On retire les espaces au début et à la fin de la chaîne
            'une  chaine avec  des espaces'
            >>> titre = "introduction"
            >>> titre.upper().center(20)
            '    INTRODUCTION    '
            >>>

            il manque un 's' a minuscule de:

            minuscule.capitalize() # La première lettre en majuscule
            minuscules.capitalize() # La première lettre en majuscule

             Si j'en vois d'autres je compléterai :)

             update le 25/12/14:

            Encore une petite... :)

            au chapitre 'Les listes et tuples (2/2)':

            # On change le sens de l'inventaire, la quantité avant le nom
            inventaire_inverse = [(qtt, nom_fruit) for nom_fruit,qtt in inventaire]
            # On trie l'inventaire inversé dans l'ordre décroissant
            inventaire_inverse.sort(reverse=True)
            # Et on reconstitue l'inventaire
            inventaire = [(nom_fruit, qtt) for qtt,nom_fruit in inventaire_inverse)]

            Sur la dernière ligne il y a une erreur:

            inventaire = [(nom_fruit, qtt) for qtt,nom_fruit in inventaire_inverse)]
            inventaire = [(nom_fruit, qtt) for qtt,nom_fruit in inventaire_inverse]



            -
            Edité par amt3ch il y a environ 10 heures


            Il serait bon d'ajouter aussi celles ci : erreurs diverses dans le tuto python

            :-°
            • Partager sur Facebook
            • Partager sur Twitter
            On sait jamais.
              3 janvier 2015 à 9:26:26

              Je suis d'accord, d'ailleurs, une petite vérification via l'interpreteur, le confirme :

              >>> a = 8
              >>> b = 3
              >>> c = a / b
              >>> print c
              2
              >>> 
              >>> type(c)
              <type 'int'>



              vmonteco a écrit:

              Bonjour,

              J'ai fait le premier quizz et je ne suis pas d'accord avec un point de la correction. (la première question).
              L'énoncé était :
              Après ces instructions, de quel type est la variable c ?

              a = 8
              b = 3
              c = a / b

               Selon la correction :
              <small>Les variables a et b sont toutes les deux entières, mais le résultat de la division de 8 / 3 retourne un nombre flottant (quelque chose comme 2,6666...). En conséquences, c'est le type float (flottant) qui est retourné par Python.</small>

              Or, sauf erreur de ma part, une division entre deux entiers en python donnera toujours un int, avec un résultat arrondi. à moins de convertir au moins l'un des deux opérandes en float.
              C'est facilement vérifiable avec un simple interpréteur.



              • Partager sur Facebook
              • Partager sur Twitter
                6 janvier 2015 à 0:23:43

                Bonsoir j'ai débuter l'apprentissage du Python sur ce site il y a peu et il se trouve que je n'arrive pas à comprendre l'erreur que j'ai fait dans mon code pour le TP ZCasino. Le problème étant qu'après chaque parti de roulette, le programme repart sur une base de capital = 500$

                import os
                
                def roulette(mise, numero_choisi, numero_bille, capital): 	#fonction qui simule la roulette
                        
                	print("Combien voulez-vous mise ?")
                	mise = input()
                	mise = int(mise)
                	
                	print("Quel numéro avez-vous choisi ?")
                	numero_choisi = input()
                	numero_choisi = int(numero_choisi)
                	
                	if numero_choisi >=0 and numero_choisi <=49:
                	
                	
                		from random import randrange
                		numero_bille = randrange(50)
                		print("Et le numero gagnant est le", numero_bille)
                	
                		if numero_bille == numero_choisi:
                			capital += mise*3
                			print("Felicitations, vous avez gagne", mise*3, "$")
                		elif numero_bille%2 == numero_choisi%2:
                			capital += mise*0.5
                			print("Felicitations, vous avez gagne", mise*0.5,"$")
                		else:
                			capital -= mise
                			print("Desole, vous avez perdu", mise,"$")
                	
                		from math import ceil
                		capital = ceil(capital)
                	
                		print("Votre capital est desormais de", capital,"$")
                	else:
                		print("Entre 0 et 49 svp")
                		
                		
                print("Bienvenue a la roulette, votre capital est de 500$.")
                capital = 500
                mise = 0
                numero_choisi = 0
                numero_bille = 0
                
                while capital >= 0:
                	roulette(mise, numero_choisi, numero_bille, capital) 
                
                print("Vous avez perdu tout votre argent")
                
                os.system("pause")

                Merci d'avance :)

                Edit : J'ai remarqué que toutes ces variables reprenaient leur valeur de base en arrivant a la fin de la fonction, j'aimerais donc savoir pourquoi les valeurs ne sont pas conservées ? 

                capital = 500
                mise = 0
                numero_choisi = 0
                numero_bille = 0

                -
                Edité par Zokraps 6 janvier 2015 à 0:46:08

                • Partager sur Facebook
                • Partager sur Twitter
                  6 janvier 2015 à 23:52:08

                  Salut, moi aussi viens de débuter il y a 3 semaines... :)

                  j'ai relevé quelques petites erreurs... c'est peut être une solution parmi tant d'autre...

                  import os
                  from random import randrange
                  from math import ceil
                  
                  capital = 500
                  mise = 0
                  numero_choisi = 0
                  numero_bille = 0
                  
                  def roulette(capital, mise, numero_choisi, numero_bille):
                      mise = input("Combien voulez-vous miser ? ")
                      mise = int(mise)    
                      numero_choisi = input("Quel numéro avez-vous choisi ? ")
                      numero_choisi = int(numero_choisi)
                      
                      if numero_choisi >=0 and numero_choisi <=49:       
                          numero_bille = randrange(50)
                          print("Et le numero gagnant est le", numero_bille)    
                          if numero_bille == numero_choisi:            
                              print("Felicitations, vous avez gagne", ceil(mise*3), "$")
                              capital += mise*3
                              capital = ceil(capital)
                              print("Votre capital est desormais de", capital, "$")
                              return capital
                          elif numero_bille%2 == numero_choisi%2:
                              print("Felicitations, vous avez gagne", ceil(mise*0.5), "$")
                              capital += mise*0.5
                              capital = ceil(capital)
                              print("Votre capital est desormais de", capital, "$")
                              return capital
                          else:
                              print("Desole, vous avez perdu", mise,"$")
                              capital -= mise
                              capital = ceil(capital)
                              print("Votre capital est desormais de", capital, "$")
                              return capital       
                      else:
                          print("Entre 0 et 49 svp")
                  
                  
                  print("Bienvenue a la roulette, votre capital est de 500$.")
                  
                  
                  while capital > 0:
                      capital = roulette(capital, mise, numero_choisi, numero_bille)
                  
                  print("Vous avez perdu tout votre argent")
                   
                  os.system("pause")

                  @+

                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 janvier 2015 à 1:41:22

                    capital = roulette(capital, mise, numero_choisi, numero_bille)

                    Ok j'avais oublié cette partie là, ça veut dire que le capital prend la valeur renvoyé par la fonction roulette ?

                    Edit : Effectivement j'ai essayé en faisant return mise, et le capital prend la valeur de la mise du coup.. 

                    Merci bien en tout cas :)

                    -
                    Edité par Zokraps 7 janvier 2015 à 1:46:11

                    • Partager sur Facebook
                    • Partager sur Twitter
                      7 janvier 2015 à 23:26:49

                      Bonjour

                      Je fais actuellement  l'exercice qui consiste à créer la Class DictionnaireOrdonne

                      J'aimerai bien la tester dans l'interpreteur (Python-3.4.2) mais je ne sais pas comment "charger" ma classe à partir de mon fichier

                      C'est surement très simple mais je suis blonde !!!

                      merci

                      • Partager sur Facebook
                      • Partager sur Twitter
                        8 janvier 2015 à 1:48:43

                        Dans le fichier principal qui appel la classe ajoute ça:

                        from nomDeFichier import nomDeClasse

                        sirius911 a écrit:

                        Bonjour

                        Je fais actuellement  l'exercice qui consiste à créer la Class DictionnaireOrdonne

                        J'aimerai bien la tester dans l'interpreteur (Python-3.4.2) mais je ne sais pas comment "charger" ma classe à partir de mon fichier

                        C'est surement très simple mais je suis blonde !!!

                        merci

                        -
                        Edité par amt3ch 8 janvier 2015 à 1:50:17

                        • Partager sur Facebook
                        • Partager sur Twitter
                          8 janvier 2015 à 12:45:40

                          Merci amt3ch

                          C'etait tout simple mais j'avais essayé en mettant

                          >>> from Dico.py import DictionnaireOrdonne

                          alors qu'il faut mettre

                          >>> from Dico import DictionnaireOrdonne

                          Faut vraiment que je fasse une couleur !!!!!!!!!!!!!!

                          • Partager sur Facebook
                          • Partager sur Twitter
                            11 janvier 2015 à 19:20:04

                            édit:

                            je suis dessolé je viens, après avoir écrit mon message, de voir qu'il y avais plusieurs pages à ce forum et que mon soucis a déjà été évoqué je vous présente toutes mes excuses...

                            bonjour a tous,

                            voila je poste car je rencontre certain problème lors des exercice du cour pour apprendre a programmer en python et j’espère ne pas me tromper de rubrique...

                            en effet je tourne sous windows 8.1, j'ai installé la dernière version de python soit la 3.4.2 ainsi que notepad++ V6.7.4 Jusque la pas de souci mais les ennuies commence dans la partie 1 "le monde merveilleux des variables" 

                            en effet sur le code python que suis :

                            >>> a = 3

                            >>> print(a)

                            >>> a = a + 3

                            >>> b = a - 2

                            >>> print("a =", a, "et b =", b)

                             j'ai un souci avec cette dernier ligne car lorsque je la tape dans notepad ++, l'enregistre dans un fichier.py et l'execute dans windows en double clic et bien il m'affiche un truc du genre:

                            3

                            ('a=', 6,'et B =' , 4)

                            appuyez sur une touche pour continuer...

                            vous serez en accord que sur la dernière ligne on est bien loin du :   a = 6 et B = 4   auquel on s'attendrez.

                            j'ai compris en bidouillant un peu que le second appel à la fonction print il fallait l’écrire sans les parenthèse comme ceci:

                            >>> a = 3

                            >>> print(a)

                            >>> a = a + 3

                            >>> b = a - 2

                            >>> print "a =", a, "et b =", b

                            et HOp la tous s'écrit bien... quelqu'un a une explication a mon problème?

                            -
                            Edité par Aglean 11 janvier 2015 à 19:22:52

                            • Partager sur Facebook
                            • Partager sur Twitter
                              15 janvier 2015 à 0:05:59

                              J'étais en train de rédiger le message aux futurs correcteurs de la dernière activité, et quand j'ai vu l'horloge, elle indiquait 00:00. Je clique sur envoyer, trop tard.

                              LLLLLLLLLLLLOOOOOOOOOLLLLLLLLLLLL :lol:

                              Il faudra donc que je me réinscrive à ce sombre cours.

                              Le message que je rédigeais était le suivant :

                              Une semaine pour lire tout ça et faire une activité de branque c'est n'importe quoi.
                              Vous trouverez 2 dossiers, dont un qui comporte le jeu du labyrinthe fonctionnant avec toutes les améliorations demandées, sauf qu'il n'est pas une application serveur.
                              Le deuxième est le début du codage avec la communication client/serveur. Il reste pas mal de boulot, et je suis encore dessus.
                              Enfin, sachez que j'ai du reprendre le travail d'un zéro que j'ai corrigé (la première version du laby), aussi il m'a fallu cerner et reprendre tout son code pour que je l'améliore selon l'énoncé, car je n'ai pas pu finir la première version non plus, je ne m'attendais pas à un truc aussi lourd à faire.

                              Peut être que si j'avais moi même pu coder la version 1 du laby jusqu'à la fin ça aurait pu le faire et j'aurais pu avancer plus loin. On n'en est plus là. Le tuto de le goff étant assez complet, celui ci est plein de ratures et le goff n'est plus là pour en juger. Aussi soyez indulgent pour tout le monde sachant qu'on n'aura même pas le code entier fonctionnel et que l'auteur s'est tiré sans corriger son tuto. Si de votre côté vous avez pu tout coder en si peu de temps, toutes mes félicitations.

                              • Partager sur Facebook
                              • Partager sur Twitter
                              On sait jamais.
                                15 janvier 2015 à 0:14:13

                                Je lis : "Vous progressez dans le cours semaine par semaine. Une partie du cours correspond à une semaine de travail de votre part. "

                                Est-ce à dire qu'on a une semaine pour étudier un chapitre de cours et une semaine pour travailler sur l'Activité correspondante? Ça serait effectivement plus intéressant parce que là une semaine pour tout lire et enchainer sur le codage d'une application serveur, c'est franchement hallucinant pour des zéros. En plus c'est marqué "facile" sur le tuto dites moi que je rêve svp?

                                • Partager sur Facebook
                                • Partager sur Twitter
                                On sait jamais.
                                  15 janvier 2015 à 18:46:19

                                  Salut Rick_Wakeman, je suis tout a fait d'accord avec toi... je pense qu'il faudrait faire comme suit: part 1 -> 1 Semaine, Part 2 -> 1 Semaine, Part 3 -> 2 semaines et Part 4 -> 2 Semaines. Il est vrai que pour un cours de soit disant débutant, entre la compréhension et la réalisation des TP, ce n'est pas évident a faire pour la part 3 et 4 en 2 semaines.

                                  moi aussi pas fini la part 3, d'ailleurs tu m'as corrigé, il y avait ta signature :), la part 4 en reprenant moi aussi le corrigé du 3 pour le faire en client/serveur n’était pas fini, j'ai mon ordinateur qui a planté, j'ai perdu 3 jours de progs, j'ai demandé l'indulgence des correcteurs :) j'attends mes notes d'ailleurs.

                                  Il y a d'ailleurs une grave faute que j'ai signalé a l’administrateur du site je crois, le lien du corrigé 4  renvoie sur le corrigé 3. lloll il y a 2 jours... pas de modifs a ce jours... :) bon vu que je suis démerdard :) en modifiant le lien du 3 j'ai pu téléchargé le lien du 4... si tu le veux te l'envoi en privé...

                                  t’inquiète pas, les 3 personnes que j'ai du corriger n'avait pas réussi... alors soit le temps imparti est trop court soit le TP est trop dur!!!

                                  je pense que c'est les 2... d'ailleurs le cours est bourré de fautes de syntaxe, quand tu fais des copier/coller, le code renvoie souvent des erreurs, bon je trouve la plupart du temps je corrige, c'est sur c'est un bon exercice :)... ça serait bien qu'il rectifie tout ça quand même....

                                  autre chose, un corrigé plus explicatif serait bien, expliquer en détail serait plus compréhensible pour un débutant, chercher les infos a droite et a gauche, plus les leçons, plus les TP, trop de chose franchement en 1 semaine...

                                  Bon sinon ça ma donné envie de poursuivre ce langage.... il a l'air vraiment bien...

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    17 janvier 2015 à 14:12:53

                                    Oui c'est dommage même pour le tuto lui même qui est très complet et très intéressant. Mais comme y'a moyen de se réinscrire, en fait je vais tout refaire parce que j'ai tout avalé trop vite. Quand je mange du caviar, j'aime bien déguster. En général je prends des notes et je garde le fichier précieusement. Là j'ai fait preuve de laxisme et je ne l'ai pas fait. Si je dois tout relire ça sera l'occasion de le faire.

                                    Et de refaire les activités. Ce que je vais faire c'est une appli du feu de Dieu vu que maintenant j'ai le temps, et le rendre aux correcteurs. Comme on peut s'y réinscrire, c'est sympa. Je suppose que le goff qui va corriger dans la seconde toutes les erreurs du tuto a surement des milliers d'autres activités pour pallier à ce genre de tricherie mais bon, je le fais quand même on sait jamais. :lol:

                                    J'aurais dû faire des captures écran pour les questions des quizz aussi histoire d'avoir 100% de réponses justes mais là encore, comme il doit y avoir des millions de fichiers contenant chacun un quizz différent ça doit être peine perdue. Faudra que je le fasse quand même on sait jamais. :lol:

                                    Sérieusement, la partie "réseau" du cours est assez sympa sachant que par exemple, si tu remplaces localhost par une IP privée de ton réseau local (par exemple 192.168.0.4), tu peux faire un programme que tu peux utiliser pour envoyer une fenêtre modale qui contient un message sur l'ordi de quelqu'un de chez toi qui utilise un portable par exemple (nécessite de connaître le module Tkinter). Il faut bien sûr auparavant installer python sur toutes les machines, et dans leur programmes de démarrage, ajouter un fichier client.py qui fera connecter la machine au serveur.

                                    Si ça se trouve on peut même étendre ça à des IP publiques j'ai pas essayé. Bon courage pour la suite.

                                    -
                                    Edité par Rick_Wakeman 17 janvier 2015 à 14:18:27

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    On sait jamais.
                                      21 janvier 2015 à 15:21:15

                                      Bonjour tout le monde, je suis un petit nouveau sur le forum et surtout dans le monde de la programmation c'était pour savoir si en dehors de la console python (invite de commandes) il pourrait y avoir d'autres interpréteur un peux mieux.

                                      Merci d'avance et bonne journéé  

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        21 janvier 2015 à 18:51:20

                                        Salut, moi j'utilise Eclipse avec Pydev (gratuit mais tu peux faire un don...), j'ai utilisé ce tuto sur youtube...

                                        voici le lien (ah oui c'est en anglais mais si tu fait pause de temps en temps sur les images ça le fait hihihiiii )

                                        https://www.youtube.com/watch?v=fAa80SpQJHo

                                        (Installing Python & PyDev on Eclipse).

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          23 janvier 2015 à 7:43:38

                                          Bonjour,

                                          J'ai un petit souci avec les boucles, j'ai repris le programme du cours

                                          nb=input("Saisissez un nombre : ")
                                          nb== int(nb)
                                          i=0

                                          while i<10:
                                            print(i + 1, "*", nb, "=" , (i + 1) * nb)
                                            i += 1

                                          et pour moi le résultat n'est pas le même que décrit, j'ai beau chercher je ne trouve pas pourquoi, pourriez vous m'aider merci.

                                          >>> ================================ RESTART ================================
                                          >>>
                                          Saisissez un nombre : 7
                                          1 * 7 = 7
                                          2 * 7 = 77
                                          3 * 7 = 777
                                          4 * 7 = 7777
                                          5 * 7 = 77777
                                          6 * 7 = 777777
                                          7 * 7 = 7777777
                                          8 * 7 = 77777777
                                          9 * 7 = 777777777
                                          10 * 7 = 7777777777
                                          >>>

                                          ma version de Python est ""Python 3.4.2""

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            23 janvier 2015 à 8:26:09

                                            Salut

                                            La raison est simple, tu t'es trompé tu as fais nb == int(nb) (c'est un test (je me rappel plus du mot), et ça renvoi False ici), il faut faire nb = int(nb), ou encore nb = int(input('Saississez un nombre : ')).

                                            Et du coup si ton nb est du type string ça va afficher le caractère nb (ici 7) i+1 nombre de fois

                                            -
                                            Edité par InhumanRampage 23 janvier 2015 à 8:28:15

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              23 janvier 2015 à 16:52:04

                                              En effet correction apportée, ça fonctionne comme il faut, merci bien de la réponse rapide.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                27 janvier 2015 à 11:33:32

                                                Je fais le premier exo de la partie 2 du cours. ci dessous l'exo que j'essaie de reprendre mais cela m'affiche une erreur

                                                chaine = str() # Crée une chaîne vide
                                                # On aurait obtenu le même résultat en tapant chaine = ""

                                                while chaine.lower() != "q":
                                                    print("Tapez 'Q' pour quitter...")
                                                    chaine = input()

                                                print("Merci !")

                                                j’utilise Python 2.7 dans l'IDE "Eric"

                                                Voici l'erreur qui s'affiche

                                                >>> chaine = str()
                                                >>>          while chaine.lower() ! = "q":
                                                  File "<stdin>", line 1
                                                    while chaine.lower() ! = "q":
                                                    ^
                                                IndentationError: unexpected indent

                                                J'ai fais differend changement  pour l'intendation mais cela ne marche pas. j'ai besoin de votre aide.

                                                -
                                                Edité par Salifou Dene 27 janvier 2015 à 11:35:40

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                "... Aller chercher la connaissance partout où il se trouve." PROPHÈTE MOHAMED (SWA)
                                                  27 janvier 2015 à 13:07:11

                                                  Salut

                                                  En Python 27, print n'est pas une fonction à part entière, donc pas de parenthèses. Ensuite input ne prend que des nombres en entrée et renvoie une erreur pas sympathique si tu rentres autre chose. Il faut utiliser raw_input.

                                                  chaine = str()
                                                  
                                                  while chaine.lower() != 'q':
                                                      chaine = raw_input('Tapez Q et ENTREE pour quitter : ')
                                                  
                                                  print 'Merci'


                                                  Et ton erreur est aussi que tu as mis une indentation avant le while, pour une raison qui m'est encore inconnue.

                                                  -
                                                  Edité par InhumanRampage 27 janvier 2015 à 13:11:11

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    28 janvier 2015 à 19:15:24

                                                    Bonjour, dans le TP du jeu du pendu, il est demandé de gérer les scores dans un fichier.

                                                    Lors de la lecture du fichier, le fichier peut ne pas exister. Pourquoi ne gère-t-on pas cela en levant l'exception FileNotFoundError plutôt que par if os.path.exists ?

                                                    Au fond ce que je ne comprends pas, c'est pourquoi et quand utiliser les exceptions si on peut tout régler avec des "if" comme c'est le cas dans la correction de ce TP ? Car voui, dans ma version j'ai un peu mis des try/except partout pour gérer les erreurs...

                                                    Je cite une autre source qui procède ainsi:

                                                    try:

                                                        with open('/tmp/fichier', 'w') as fichier:

                                                            # faire un truc avec le fichier

                                                    except IOError, OSError:

                                                        # gérer l'erreur

                                                    Si je devais faire ça avec des if, il faudrait :

                                                    Vérifier que le fichier existe.

                                                    Vérifier que le fichier est un fichier et non un dossier.

                                                    Vérifier que j’ai les permissions d’écrire sur le fichier.

                                                    Vérifier que j’ai les permissions de traverser les dossiers parents.

                                                    Vérifier que personne n’a ouvert le fichier en écriture avant.

                                                    C’est relou. Mais en prime, entre chaque vérification du if s’écoule quelques nanosecondes durant lequelles l’état de mon fichier a pu changer. Un autre programme a pu changer les permissions, créer un fichier avec le même nom, etc. Arrivé à la fin du if, on n’a pas la garantie que les vérifications du début du if sont toujours d’actualité.

                                                    try/except évite ce problème qu’on appelle des “race conditions” : on essaye d’abord, et ensuite si ça foire, on analyse pourquoi.

                                                    Merci

                                                    -
                                                    Edité par tempinou 28 janvier 2015 à 19:19:42

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      11 février 2015 à 16:49:16

                                                      Bonjour,

                                                      Concernant l'utilisation des socket, il est dit dans le tuto qu'on peut utiliser localhost, ou 127.0.0.1 comme paramètre dans

                                                      connexion_avec_serveur.connect(('localhost', 12800))

                                                      Est-il possible d'utiliser des ip publiques? Comment procèderait-on?

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      On sait jamais.
                                                      Anonyme
                                                        11 février 2015 à 19:08:49

                                                        Est-il possible d'utiliser des ip publiques?

                                                        Pour le serveur ou pour le client ? De toutes façons ça dépend de la configuration de ton réseau.

                                                        Ton routeur (ou ta box) doit avoir une page NAT pour définir les redirections de ports.

                                                        ATTENTION, en ouvrant des ports vers ton réseau local, tu expose ton réseau personnel à internet !

                                                        -
                                                        Edité par Anonyme 11 février 2015 à 19:09:18

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          12 février 2015 à 16:21:56

                                                          Je suis au fait de tout cela et m'attendais à cette réponse.

                                                          Il faut donc voir à utiliser la table de routage en fonction des ports depuis le portail de la box. Je suis chez bouygues, je reviendrai peut être si je n'arrive pas à gérer ou si ça ne marche pas, merci pour la réponse, à suivre.

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          On sait jamais.
                                                            13 février 2015 à 15:02:04

                                                            Suite. En fait autant pas prendre ce chemin. Si on veut étendre roboc aux ip publiques, je ne vois pas comment faire sans passer par la solution que tu donnes. Mais c'est franchement trop contraignant pour les autres. C'est donc qu'il faudrait passer par une couche supérieure, le problème serait donc contournable par l'utilisation d'un autre protocole : ftp? Existe-t-il un module ftp chez python? Et est-ce la meilleure solution?
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                            On sait jamais.

                                                            Exercices du cours Python / postez ici !

                                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                            • Editeur
                                                            • Markdown