Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Python / postez ici !

    19 décembre 2017 à 9:13:38

    entwanne a écrit:

    Tu essayes de compiler Python 3 manuellement ? Il ne faut pas faire ça, installe directement python3 à l'aide de ton gestionnaire de paquets (apt je suppose) : sudo apt-get install python3.


    Salut entwanne. En faite, j'ai suivis exactement l'installation du cours. Mais hier, en faisant plus de recherches, j'ai vu qu'il fallait taper : "python3" pour pouvoir travailler avec le 3 et pas avec le 2. Et donc pour compiler mon fichier sur le terminale, je met : "python3 +lenom_du_fichier"

    Merci encore cher ami du python ! :)

    -
    Edité par Dalila Hannouche 19 décembre 2017 à 9:34:47

    • Partager sur Facebook
    • Partager sur Twitter
      19 décembre 2017 à 9:21:01

      On ne parle pas de la même compilation. Je trouve bizarre que tu aies un dossier Python-3.6.3, qui semble indiquer que tu as téléchargé les sources de CPython, ce qui n'est pas nécessaire pour l'utiliser (mais qui est très instructif à lire).

      Dans Geany, la version de Python utilisée se configure (Menu Construire > Définir les commandes de construction). Et sinon, tu peux toujours utiliser le terminal intégré.

      • Partager sur Facebook
      • Partager sur Twitter
        19 décembre 2017 à 9:37:20

        entwanne a écrit:

        On ne parle pas de la même compilation. Je trouve bizarre que tu aies un dossier Python-3.6.3, qui semble indiquer que tu as téléchargé les sources de CPython, ce qui n'est pas nécessaire pour l'utiliser (mais qui est très instructif à lire).

        Dans Geany, la version de Python utilisée se configure (Menu Construire > Définir les commandes de construction). Et sinon, tu peux toujours utiliser le terminal intégré.

        Oui :D Justement, j'avais trouvé la solution pour Geany ! D'où la modification de mon message précédent. C'est vraiment sympa d'avoir pris le temps de m'aider. Je n'ai plus qu'à continuer le cours maintenou *toute contente.

        • Partager sur Facebook
        • Partager sur Twitter
          20 décembre 2017 à 18:26:07

          Bonjour,

          J'en suis à l'exercice du labyrinthe 2ème version et je ne comprends absolument pas comment faire tourner les unittest.TestCase.

          J'ai l'arbo suivante :

          .
          ├── cartes
          │   ├── facile.txt
          │   └── prison.txt
          ├── pack_client
          │   └── classesclient.py
          ├── pack_labyrinthe
          │   ├── elementsLab.py
          │   ├── labyrinthe.py
          │   ├── modulelab.py
          │   └── test_labyrinthe.py
          ├── pack_serveur
          │   ├── classeserveur.py
          │   └── moduleserveur.py
          ├── roboc_cli.py
          └── roboc.py
          
          


          j'ai créé un fichier test_labyrinthe.py sensé tester les methodes de la classe Labyrinthe dans le rep pack_labyrinthe

          #!/usr/local/bin/python3.6
          # -*-coding:Utf-8 -*
          
          from unittest import *
          from labyrinthe import *
          
          class TestLab(TestCase):
          
              def test_chargeLab(self):
                  lab = Labyrinthe("facile.txt")
                  listLignes = lab.__readLab("facile.txt")
                  self.assertTrue(type(listLignes) == list)

          code de la methode testée :

          @staticmethod
          def __readLab(nomFich):
              """Charge le fichier texte dont le nom est en arg.
              Renvoie une liste contenant le labyrinthe"""
              with open("./cartes/"+nomFich, 'r') as fich:
                  listLignes = fich.readlines()
              return listLignes

          Depuis la console python dans le rep. pack_labyrinthe je lance unittest.main()

          j'ai l'erreur suivante :

          with open("./cartes/"+nomFich, 'r') as fich:
          FileNotFoundError: [Errno 2] No such file or directory: './cartes/facile.txt'

          ce qui parait logique puisque le répertoire depuis lequel est appelé cette méthode est celui de roboc.py càd le rep. racine du projet,le fichier a donc le path

          ./cartes/facile.txt

          je cherche donc à lancer le test depuis la racine avec unittest.main() et j'ai l'erreur :

          ERROR: test_chargeLab (__main__.TestLab)
          ----------------------------------------------------------------------
          Traceback (most recent call last):
            File "/home/patrick/Bureau/Python/labyrinthe/monLabyrinthe_II/pack_labyrinthe/test_labyrinthe.py", line 11, in setUp
              listLignes = lab.__readLab("facile.txt")
          AttributeError: 'Labyrinthe' object has no attribute '_TestLab__readLab'
          

          C'est quoi

          _TestLab__readLab'
          

          ????

          cela devrait être lab.__readLab la methode de l'obj que j'ai créé : lad de la classe Labyrinthe ... avec lab = Labyrinthe()

          Je n'y comprends rien !!!

          --------------------------------------------------------------------------------------------------------------------------------------

          edit 23/12

          j'ai compris :D

          #!/usr/local/bin/python3.6 
          -*-coding:Utf-8 -*
          
          import unittest
          from pack_labyrinthe.labyrinthe import *
          
          class TestLab(unittest.TestCase):
              def setUp(self):
                  self.nomFile = "facile.txt"
                  self.lab = Labyrinthe(self.nomFile)
                  # RàZ listRobot si non conservé d'un test à l'autre
                  # créant des erreurs
                  self.lab.listRobot = list()
          
              def test_ajoutRobot(self):
                  nom = "toto"
                  self.assertTrue(len(self.lab.listRobot) == 0)
                  self.lab.ajoutRobot(nom)
                  self.assertTrue(len(self.lab.listRobot) == 1)
                  self.assertTrue(self.lab.listRobot[0].nom == "toto")



          sauve le fichier test sur le répertoire racine et le lancer depuis celui-ci. Il n'y a plus de problème de dépendance ou de path.

          [~/Bureau/Python/labyrinthe/monLabyrinthe_II]$ ./test_labyrinthe.py 
          .....
          ----------------------------------------------------------------------
          Ran 5 tests in 0.002s
          
          OK
          



          Par contre il est impossible de tester directement les fonctions en __nomFonction() et c'est normale en y réfléchissant, la tête froide ..., puisque le "__" les rends en quelque sorte privée à la classe.

          J'avoue que ces foutus tests je m'en serais bien passé ...Et le cours est léger la-dessus, il aurait fallu 2 chapitres amha !

          Je n'en peux plus de ce labyrinthe:-°

          -
          Edité par Triple Zero 23 décembre 2017 à 22:49:51

          • Partager sur Facebook
          • Partager sur Twitter
            22 décembre 2017 à 8:00:36

            Bonjour , 

            Je suis sur le Tp du Pendu , j'ai fait le jeu qui fonctionne sous l'interpreteur mais je souhaite le lancer pour continuer a le corriger. Probléme , je n'arrive pas a le lancer la fenêtre se fenetre immédiatement et je n'arrive pas à detecter l'erreur ni l'exception qui est levé. c'est pour cela que j'en apelle a votre aide : 

            le dossier principal:

            """ Jeu de Pendu """
            
            from Fonction_PenduTp import *
            from Donnees_PenduTp import *
            
            import os
            import pickle
            import random
            
            
            
            print("*** BIENVENUE AU PENDU GAME *** \n ")	
            print("Vous pouvez consulter les regles du jeu tapez : 1")
            
            Regles=lireInt()
            if Regles == 1 :
            	ReglesPendu()
            	
            print("Quels votre nom ?\n")
            nomJ=lireStr()
            Score=Score_Joueur.setdefault( nomJ,0 )									#module de dictionaire qui verifie si le nom existe et le cree dans le cas contraire ...
            print("{} votre score actuel est de : {} points\n ".format( nomJ,Score ))# par defaut incris une valeur 
            
            mots=GenerationMots()
            motCach=maquilMot( mots )
            print ("Voici le mots mystére : {} :)\nVous avez {} chance pour le trouver".format( motCach,coup ))
            
            while tour ==0 :
                    print("{} c'est à vous de jouer ecrivez une lettre ".format( nomJ ))
                    ltr=lireStr()
                    motCach,point=ctrlCarac( motCach,mots,ltr )
                    if motCach==mots :
                            print("\n Excelent vous gagner !! il y a : {} {} dans {} \n".format( point,ltr,motCach ))
                            tour=1
                    elif point >0 :
                            print("\n Bravo !! il y a : {} {} dans {} \n".format( point,ltr,motCach ))
                    
                    elif coup<=0 :
                            print(" Vous avez perdu!! ")
                            tour=1
                    else :
                            coup-=1
                            print(" {} n'est pas dans le mots Mystere !!! \n".format( ltr ))
            
            print(" votre score est de {} il seras enregeistré pour la prochaine fois ".format( coup ))
            Score_Joueur={nomJ:coup+Score}
            sauv(Score_Joueur) 

            les données :

            """ donnees du jeu """
            
            coup=8
            tour=0
            with open('Bibliotheque2.txt')as f :
            	contenu=f.read()
            	list_mots=contenu.split('\n')
            	f.close()
            	 
            Score_Joueur=restaure()

            Et les Fonction :

            """ Fonction du jeu Pendu """
            import os 
            import pickle 
            import random
            
            def lireInt() :
                    """ Fonction qui a pour but de securiser les Entrer de chiffre
                    de l'utilisateur
                    """
                    try :
                            nB=int(input("Entrez un chiffre...: "))  #convertie en int nb
                            return nB                                                               #conversion possible il le renvoi
                    except ValueError :                                                     #convertion impossible erreur de valeur 
                            print("Vous n'avez pas saisie de chiffre\n")
                            return lireInt()                                                        #on rapelle la fonction 
                    
            def ReglesPendu() :
                    """ Fonction qui ennonce les regles du jeu
                    """
                    print("""l'ordinateur choisit un mot au hasard
                    dans une liste, un mot de huit lettres maximum. 
                    Le joueur tente de trouver les lettres composant 
                    le mot. À chaque coup, il saisit une lettre. Si la
                    lettre figure dans le mot, l'ordinateur affiche 
                    le mot avec les lettres déjà trouvées. Celles qui ne 
                    le sont pas encore sont remplacées par des étoiles
                    . Le joueur a 8 chances. Au delà, il a perdu.""")
            
            
            def lireStr() :
                    """ Fonction a pour role de verifier qu'il n'y a pas que des chiffres dans la chaine 
                    """
                    chaine=input( "Ecrivez...: " )
                    if chaine.isdigit() == True :                           # Module intérresesant vérifie qu'il n'y a pas que des chiffres ou decimal retourne vrai ou faux
                            print("il n'y a que des chiffres!!")
                            return lireStr()
                    else :
                            return chaine.strip()                           # retourne la chaine sans espace avant et apres
            
                    
            def GenerationMots() :
                    """ fonction va chercher un mots aleatoirement dans le dictionaire et le renvoi 
                    """
                    nB=random.randrange( 1,len(list_mots) ) # cherche un n° en fonction de la longeur de la liste 
                    return list_mots[nB]
            
            def maquilMot(mots) :
                    """fonction qui maquille les mots en fonction de la taille du mots trouvé 
                    """
                    motsMys=[]
                    for i in mots :
                            motsMys.append('X')
                    return ''.join(motsMys)
            
            def ctrlCarac ( motsMys,mots,ltr ) :
                    """fonction cree une liste afin de modifier les caractere souhaite a la place voulu
                    retourne le nombre de lettre trouve et le mots mystere modifier
                    """
                    ltrU=ltr.upper()                                                # on modifie la lettre pour toujour avoir la meme reference
                    p=0                                                                             # compteur de point
                    motsM=[]
                    for i in (motsMys) :                                            # on remplit la liste 
                            motsM.append(i)
                    for i,c in enumerate(mots) :                            # on enumere le mots a la recherche des caracteres et de leur place
                            if c == ltrU :
                                    motsM[i]= ltrU                                  # on modifie la liste   
                                    p+=1                                                                                            
                    motsMys=''.join(motsM)                                  # on reasemble le mots Mystere
                    return motsMys,p
            
            def sauv( score ) :
                    fsauv=open('Score','wb')
                    pickle.dump( score,fsauv )
                    fsauv.close()
            def restaure () :
                    score={}
                    try :
                            f=open('Sre','rb')
                            score=pickle.load( f )
                            f.close()
                    except FileNotFoundError :                              # si le fichier na pas etait cree on passe l'erreur 
                            pass
                    finally :
                            return score

            Merci d'avance pour votre aide 



            • Partager sur Facebook
            • Partager sur Twitter
              22 décembre 2017 à 15:14:59

              64fauchenicolas a écrit:

              la fenêtre se fenetre immédiatement

              bonjour,

              Je suppose que tu es sous windows, la console se ferme à la fin de l'exécution.

              Comment lances-tu ton programme ?

              Si tu double clique sur le fichier depuis l'explorateur cela me parait normal. (enfin normal pour windows ...)

              Il faut aller chercher dans système windows l'invite de commandes qui ouvre une console

              aller dans le bon répertoire avec cd

              rentrer le nom du fichier.py et return

              N'étant pas sous windows je ne peux pas t'en dire plus ...

              -
              Edité par Triple Zero 23 décembre 2017 à 13:52:54

              • Partager sur Facebook
              • Partager sur Twitter
                23 décembre 2017 à 13:28:16

                Triple Zero a écrit:

                64fauchenicolas a écrit:

                la fenêtre se fenetre immédiatement

                bonjour,

                Je suppose que tu es sous windows, la console se ferme à la fin de l'exécution.

                Comment lances-tu ton programme ?

                Si tu double clique sur le fichier depuis l'explorateur cela me parait normal.

                Il faut aller chercher dans système windows l'invite de commandes qui ouvre une console

                aller dans le bon répertoire avec cd

                rentrer le nom du fichier.py et return

                N'étant pas sous windows je ne peux pas t'en dire plus ...


                Bonjour ,

                Merci , je fait effectivement un double clic , je pense avoir circonscris mon problème quand je passe mon :

                """from Fonction_PenduTp import *
                from Donnees_PenduTp import *"""

                Cela fonctione ( j'ai mis le programme en pause juste avant l'appel de fonction ).Mais je n'arrive pas a comprendre pourquoi cela pose un problème . d’ailleurs j’ai même essayer d'importé un fichier vide c'est la même je dois mal m'y prendre

                Merci



                -
                Edité par 64fauchenicolas 23 décembre 2017 à 13:28:48

                • Partager sur Facebook
                • Partager sur Twitter
                  23 décembre 2017 à 13:49:04

                  Salut 64fauchenicolas

                  Quelle est ton arborescence ? (comment sont organisés tes fichiers ?)

                  Quel est le message d'erreur, toujours donner un copier coller du message d'erreur sur un forum ;)

                  Cela plante dans le code de ton main ou dans le module ? cf message d'erreur

                  La bonne syntaxe est :

                  with open("nomFich", 'r') as f:
                  


                  tu dois préciser le mode d'ouverture iici read

                  -
                  Edité par Triple Zero 23 décembre 2017 à 13:59:45

                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 décembre 2017 à 12:44:16

                    Bonjour,

                    je viens de commencer le cours de Python, et j'ai une questions quant aux paramètres du constructeur.

                    Quand j'essaie de créer un objet de la classe Peronne (cfr le code ci-dessous, issus du cours), en utilisant:

                    p1 = Personne("Micado", "Jean")

                    J'ai l'erreur suivante, et ne trouve pas comment la résoudre.

                    >>> p1 = Personne("Micado", "Jean")

                    Traceback (most recent call last):

                      File "<pyshell#14>", line 1, in <module>

                        p1 = Personne("Micado", "Jean")

                    TypeError: __init__() takes 1 positional argument but 3 were given

                    class Personne:
                    """Classe représentant une personne"""
                    def __init__(self, nom, prenom):
                    """Constructeur de notre classe"""
                    self.nom = nom
                    self.prenom = prenom
                    self.age = 33
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 décembre 2017 à 12:47:48

                      Bonjour,

                      C'est peut-être un problème d'indentation : avec le code tel que tu nous le montres, __init__ ne fait pas partie de la classe Personne.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 décembre 2017 à 17:25:22

                        Bonjour 

                        Je suis en train d apprendre le langage python, je ne connais pas un autre langage donc comprenez que je suis vraiment novice dans l'affaire.

                        Voila , pourriez vous m aidez a comprendre ou a corriger ce bout de code s'il vous plait, ce code engendre une table de multiplication que l utilisateur va déterminer le nb au début mais je n arrive pas a avoir le résultat

                        nb = input("saisissez un chiffre : ")  
                        # L'utilisateur 
                        i = 0                                                      # C'est notre variable compteur que nous allons incrémenter dans la boucle
                        
                        while i < 10:                                              # Tant que i est strictement inférieure à 10
                            print(i + 1, "*", nb, "=", (i + 1) * nb)
                            i += 1                                                 # On incrémente i de 1 à chaque tour de boucle


                        escompter cad le resultat de la multiplication n est pas juste

                        -
                        Edité par Tmackady 29 décembre 2017 à 19:43:06

                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 décembre 2017 à 17:51:37

                          Comment ça pas juste ? Ce n'est pas plutôt que tu as une erreur parce que nb n'est pas du bon type ?

                          Sinon, utilises un for et un range, ça simplifiera le code.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            29 décembre 2017 à 18:39:38

                            Merci pour l intérêt que vous portez a mon problème mais si vous avez bien lu je ne suis qu un débutant essayez s'il vous plait de me donner des explications a mon niveau for et range je ne sais pas encore les utiliser

                            voici le résultat que j obtient en lançant le code 

                            saisissez un chiffre : 5

                            1 * 5 = 5

                            2 * 5 = 55

                            3 * 5 = 555

                            4 * 5 = 5555

                            5 * 5 = 55555

                            6 * 5 = 555555

                            7 * 5 = 5555555

                            8 * 5 = 55555555

                            9 * 5 = 555555555

                            10 * 5 = 5555555555

                            -
                            Edité par Tmackady 29 décembre 2017 à 19:45:22

                            • Partager sur Facebook
                            • Partager sur Twitter
                              30 décembre 2017 à 2:31:03

                              Oui, donc un problème de type. input renvoie une valeur de type str, il faudrait la convertir en int.

                              • Partager sur Facebook
                              • Partager sur Twitter
                                31 décembre 2017 à 8:41:16

                                @ Tmackady 

                                Il faut savoir que

                                input()

                                renvoie toujours un string, donc ta variable nb est une chaîne

                                plus bas tu exécutes par exemple

                                print(3 * nb)

                                en python une chaine multipliée par un entier x renvoie la chaine répétée x fois

                                print("az" * 5)
                                
                                >>>'azazazazaz'

                                Pour obtenir une multiplication il faut utiliser 2 entiers !!!  donc convertir la sortie de input de str -> int

                                -
                                Edité par Triple Zero 31 décembre 2017 à 8:43:18

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  5 janvier 2018 à 7:32:08

                                  Bonjour,

                                  Mon terminal me signale une erreur d'indentation dans le code suivant, mais je ne la trouve pas. Pourriez-vous m'éclairer?

                                  def show_random_quote (my_list):
                                      # select random number from 0 to 8
                                      quote = my_list[0]
                                      print (quote)

                                  Par avance merci!

                                  Posté le lendemain:

                                  Merci Triple Zero pour ta réponse rapide, mais j'ai trouvé d'où venait le problème: ce n'est en fait pas un problème d'indentation (contrairement à ce que prétendait le message d'erreur), mais il manquait un pass à la fin de la condition que j'avais écrite juste avant. Du coup, Python, en arrivant à ce paragraphe, pensait encore se trouver dans le else:

                                  Syntaxe, quand tu ne nous joues pas de tours, tu nous en joues quand même!

                                  -
                                  Edité par Salsififi 6 janvier 2018 à 6:31:27

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    5 janvier 2018 à 15:35:59

                                    In [1]: def show_random_quote (my_list):
                                       ...:     # select random number from 0 to 8
                                       ...:     quote = my_list[0]
                                       ...:     print (quote)
                                       ...: 
                                    
                                    In [2]: 
                                    

                                    Je n'ai pas d'erreur d'indentation sur ton code sur ipython3

                                    Normalement les indentations sont de 4 caractères, ton indentation est de 2 car est-ce suffisant pour lever une erreur je ne sais pas. Paramètre ton éditeur pour que les tab soient converties en 4 car et essaie ton code.

                                    Perso j'utilise wing ou atom, un bon éditeur spécialisé python te sera utile pour le dernier exercice labyrinthe 2ème version ...

                                    -
                                    Edité par Triple Zero 5 janvier 2018 à 15:43:25

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      5 janvier 2018 à 16:30:29

                                      Bonjour !

                                      Actuellement sur le TP casino, je rencontre un petit soucis dans ma fonction.

                                      Jusqu'à que je rajoute la partie de vérification de la case sur laquelle le joueur mise(Second while) le programme fonctionnait correctement. une fois implem, rien à faire le programme ne tourne plus, le soucis est que aucune erreur n'est renvoyer donc je sais pas trop comment faire.

                                      Il y a peut être une notion évidente que je n'ai pas qui fait que ça ne fonctionne pas mais là je cherche et je trouve rien.

                                      import os
                                      
                                      from random import randrange
                                      from math import ceil
                                      
                                      kopec = 500
                                      
                                      print(" Bienvenue au Zcasino")
                                      print("qu'elle est votre nom ? :")
                                      nom = input()
                                      print("Bonjour", nom,"vous disposer de 500 kopec pour jouer à la roulette")
                                      
                                      def roulette():
                                      	global kopec
                                      	mise = 0
                                      	gain = 0
                                      	miseC = 2 #Variable de la case d'atterissage de la bille 
                                      	
                                      	while True:
                                      		try:
                                      			mise = int(input("Combien désirez vous miser ? :"))
                                      			assert mise <= kopec  #Verif que le montant ne dépasse pas la somme possédé
                                      			break
                                      		except ValueError:
                                      			print("Ce n'est pas un montant !")
                                      		except AssertionError:
                                      			print("Soyez raisonnable ! Vous n'avez pas ce montant !")
                                      	while True:
                                      		try:
                                      			miseC = int(input("Sur quel case ? (Choisir un chiffre entre 0 et 49)")
                                      			assert miseC <= 49, miseC >= 0 #Verif que le chiffre choisi correspond bien à ceux de la roulette
                                      			break
                                      		except ValueError:
                                      			print("On joue au même jeux ? Un chiffre je vous prie")
                                      		except AssertionError:
                                      			print("Ce chiffre n'est pas sur la roulette.. Boloss")
                                      	
                                      	print("C'est partie pour une mise de ", mise," sur la case",miseC,"!")
                                      		
                                      	kopec = kopec - mise
                                      	tir = randrange(50)
                                      	print("Tac tac tac tac tac tac \n Tac tac tac \n Tac tac... \n TaK !")
                                      	
                                      roulette()

                                      Merci d'avance !

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        5 janvier 2018 à 17:56:43

                                        Les assertions ne sont pas à utiliser dans le code, elles servent juste dans les phases de tests.

                                        Il faut donc les remplacer par une autre forme (par exemple un bloc if/else):

                                        while True:
                                            try:
                                                mise = int(input("Combien désirez-vous miser: "))
                                            except ValueError:
                                                print("Ce n'est pas un montant valide!")
                                                continue
                                        
                                            if 0 < mise <= kopec:
                                                break
                                            else:
                                                print("Soyez raisonnable! Vous n'avez pas ce montant!")
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Précepte: Le mieux est l'ennemi du bien
                                          5 janvier 2018 à 19:03:43

                                          Triple Zero a écrit:

                                          @ Tmackady 

                                          Il faut savoir que

                                          input()

                                          renvoie toujours un string, donc ta variable nb est une chaîne

                                          plus bas tu exécutes par exemple

                                          print(3 * nb)

                                          en python une chaine multipliée par un entier x renvoie la chaine répétée x fois

                                          print("az" * 5)
                                          
                                          >>>'azazazazaz'

                                          Pour obtenir une multiplication il faut utiliser 2 entiers !!!  donc convertir la sortie de input de str -> int

                                          -
                                          Edité par Triple Zero 31 décembre 2017 à 8:43:18

                                          Merci beaucoup votre pour la réponse  et j ai compris d'ou vient mon erreur, mais comment convertir la sortire de input de str -> int ?

                                          Merci d avance.

                                          Bon j ai du relire le cours du début, jusqu’à cet exercice et j ai trouvé comment convertir la sortie de input de  str -> int

                                          nb = int(input("saisissez un chiffre : "))                 # L'utilisateur
                                          i = 0                                                      # C'est notre variable compteur que nous allons incrémenter dans la boucle
                                           
                                          while i < 10:                                              # Tant que i est strictement inférieure à 10
                                              print(i + 1, "*", nb, "=", (i + 1) * nb)
                                              i += 1     





                                          -
                                          Edité par Tmackady 5 janvier 2018 à 20:54:10

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            7 janvier 2018 à 14:51:51

                                            Bonjour à tous ! 

                                            Je ne suis pas bien loin mais j'ai un problème au premier cours de la deuxième partie de python. 

                                            J'enregistre mon fichier par Sublimetext 

                                            Et là le problème se pose, comment l'ouvrir avec Python ? Je suis sous windows 10. 

                                            Je ne trouve pas le " run module " mentionné dans les explications écrites, j'ai bien un " open module " sur mon IDLE mais il ne trouve pas mon fichier. J'ai essayé donc d'employer le simple " open ", il me l'ouvre mais en fichier texte. 

                                            Une solution / explication ? (: 

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              7 janvier 2018 à 15:14:10

                                              Bonjour , 

                                              Si je comprend bien ton problème

                                              Sous Window 10 tu as la possibilité de faire avec notepad++

                                              Sinon simplement si tu as télecharger Python tu marque dans ta barre de recherche "IDLE phython" tu tombe sur "le shell" qui permet de tester des bouts de code puis apres tu fait:

                                              - new 

                                              - Tu fait ton code

                                              - Enregistre et tu la possibilité de faire F5 pour l'executer et tester les bugs

                                              -
                                              Edité par 64fauchenicolas 7 janvier 2018 à 15:14:47

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                7 janvier 2018 à 15:48:33

                                                J'ai trouvé la solution ! C'est en fait le fichier texte dont je parlais qui m'ouvre la possibilité de " run " le fichier et donc de l'employer dans Python.

                                                Désolé du dérangement et merci de ton aide ! (:

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  8 janvier 2018 à 11:01:23

                                                  Bonjour,

                                                  Je suis bloquer sur un problème d'iteration et je n'arrive pas a trouvé une explication ou une methode a celui ci :

                                                  class LevelEditor :
                                                      """ LevelEditor a pour but d'editer le tableau le tableau.
                                                      les atribut :
                                                      - self.map = choice_map
                                                      - self.wall = "Mur"
                                                      - self.door = "Porte"
                                                      - self.exit = "Sortie"
                                                      - self.robot = "Robot"
                                                      - self.vacant = "Libre"
                                                  
                                                      les methodes :
                                                      
                                                      """
                                                      def __init__(self,dict_f={}) :
                                                      
                                                          self.floor = []
                                                          for cls in dict_f.keys() :
                                                              self.floor.append(cls)
                                                          self.floor = self.floor.sort()
                                                          
                                                      def __iter__(self) :
                                                          return iter(self.floor)
                                                      
                                                      def __setattr__(self,name,value) :
                                                          return object.__setattr__(self,name,value)
                                                      
                                                      def __repr__(self) :
                                                          """ Methode qui de charge d'afficher le labyrinte correctement
                                                  
                                                          """
                                                          string = ''
                                                          for idx,cle in enumerate(self.floor) :
                                                              for val in dict_f[cle] :
                                                                  string += val
                                                              string += '\n'
                                                          return string
                                                      
                                                      def __str__(self) :
                                                          return repr(self)

                                                  voici l'exeption qui est lever ( il y en auras peu etre d'autre mais pour le moment c'est elle qui me bloque ) 

                                                  Traceback (most recent call last):

                                                    File "D:\nico\Bureau\Coderjeux\Python\Labyrinthes\roboc.py", line 28, in <module>

                                                      print(lvl)

                                                    File "D:\nico\Bureau\Coderjeux\Python\Labyrinthes\fonction_display.py", line 83, in __str__

                                                      return repr(self)

                                                    File "D:\nico\Bureau\Coderjeux\Python\Labyrinthes\fonction_display.py", line 76, in __repr__

                                                      for idx,cle in enumerate(self.floor) :

                                                  TypeError: 'NoneType' object is not iterable

                                                  Il me semble avoir redefinie correctement la methode __iter__ je ne vois pas de solution 

                                                  Merci de votre aide 

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    8 janvier 2018 à 11:25:40

                                                    Bonjour tout le monde !

                                                    Je suis débutant en Python et je rencontre un problème j'aurais besoin d'un petit peu d'aide :) !

                                                    (Je travaille sur un réseau sécurisé en entreprise, difficile de faire circuler des screenshots de code).

                                                    J'ai réalisé le premier programme concernant les années bissextiles, il s'exécute parfaitement bien sans le moindre problèmes.

                                                    Pour ce qui est de la table de multiplication, voici le code :

                                                    #! chemin_concerné
                                                    # -*-coding:utf-8 -*

                                                    def table(nb, max):

                                                           i = 0

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


                                                    Voilà et l'erreur qu'il m'est retournée : "Badly placed ()'s."  
                                                    Je ne comprends pas, je suis persuadé que c'est un petit détail mais je n'arrive pas à mettre le doigt dessus...

                                                    Merci par avance pour votre aide !

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      8 janvier 2018 à 11:27:32

                                                      @64fauchenicolas: Ton problème se situe en ligne 19. La méthode sort renvoie None (car elle fait le tri sur la liste même et donc n'en renvoie pas une nouvelle). Il suffit juste de retirer l'affectation et de simplement garder la partie à droite ;)

                                                      self.floor = []
                                                      for cls in dict_f.keys() :
                                                          self.floor.append(cls)
                                                      self.floor.sort()

                                                      -
                                                      Edité par Olygrim 8 janvier 2018 à 11:28:33

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      Précepte: Le mieux est l'ennemi du bien
                                                        8 janvier 2018 à 11:46:04

                                                        Olygrim a écrit:

                                                        @64fauchenicolas: Ton problème se situe en ligne 19. La méthode sort renvoie None (car elle fait le tri sur la liste même et donc n'en renvoie pas une nouvelle). Il suffit juste de retirer l'affectation et de simplement garder la partie à droite ;)

                                                        self.floor = []
                                                        for cls in dict_f.keys() :
                                                            self.floor.append(cls)
                                                        self.floor.sort()

                                                        -
                                                        Edité par Olygrim il y a 9 minutes

                                                        Super ! je ne chercher pas l'erreur ici :)

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          17 janvier 2018 à 21:07:26

                                                          Bonsoir,

                                                          Quel est l'algorithme qui permet de damander: les coordonnées de 4points (8valeurs) ABCD. Le programme doit déterminer si oui ou non la quadrilatère? EN Python 3

                                                          Merci d'avance

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            17 janvier 2018 à 21:19:34

                                                            Tu récupères les coordonnées des 4 points (input), et tu vérifies qu'ils sont tous distincts les uns des autres (ça se fait bien avec un set).

                                                            Edit : Ah, j'oubliais l'alignement des points. Pour chaque triplet de point, tu vérifies qu'ils ne sont pas alignés (par inégalité triangulaire par exemple).

                                                            -
                                                            Edité par entwanne 17 janvier 2018 à 21:24:44

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              18 janvier 2018 à 16:15:23

                                                              Bonjour, 

                                                              Dans l'exercice de code de la séquence Organisez en module du cours perféctionnez vous en python l'intitulé est :" Réorganisez ce projet pour qu'il contienne un module translations contenant un fichier pour le français et un pour l'anglais. Importez-le dans le fichier main.pypour l'utiliser correctement."

                                                              Ne serait-il pas plus clair de réorganiser le projet pour qu'il contienne une librairie translations ?

                                                              D'autre part comment accéder à une correction pour ces exercices ?

                                                              Merci d'avance pour vos réponses.

                                                              A bientôt

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              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