Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Python / postez ici !

    14 janvier 2020 à 17:28:04

    Merci pour ta réponse, pour le moment c'est juste un test, je remanierais la nomenclature quand tous sera fonctionnel.

    Je viens de faire la modification et je n'est plus l'erreur. Maintenant j'en ai une autre

    La voici :

    Traceback (most recent call last):
      File "C:\Users\saure\Desktop\roboc\test5.py", line 45, in <module>
        x_perso, y_perso = positionLabyrinthe(labyrinthe, perso)
    TypeError: cannot unpack non-iterable NoneType object

    • Partager sur Facebook
    • Partager sur Twitter
      14 janvier 2020 à 17:53:24

      Tu ne devrais pas remettre à plus tard le renommage, c'est maintenant que ça te pose problème.

      Pour ta nouvelle erreur, positionLabyrinthe ne renvoie pas toujours un couple de valeurs, il arrive que la fonction renvoie None (si les listes sont vides ou que la condition n'est pas remplie).

      • Partager sur Facebook
      • Partager sur Twitter
        14 janvier 2020 à 18:14:28

        Comment je peux faire pour y remédier ?
        • Partager sur Facebook
        • Partager sur Twitter
          14 janvier 2020 à 18:39:01

          Soit considérer que c'est un comportement normal et donc ne pas unpacker le résultat de la fonction dans ce cas là.

          Soit ce n'est pas un comportement normal, et donc il faut débuguer pour comprendre pourquoi la fonction renvoie None.

          • Partager sur Facebook
          • Partager sur Twitter
            14 janvier 2020 à 18:46:02

            Je crois que ça devient un peu compliquer pour moi.

            Comment je fais pour ne pas l’unpaker ou pour la debuguer ?

            • Partager sur Facebook
            • Partager sur Twitter
              14 janvier 2020 à 18:58:06

              Crée ton propre sujet parce que ça va être difficile à suivre ici, où il ne s'agit que de répondre rapidement à des questions sur des exercices.

              unpacker c'est quand tu fais x_perso, y_perso = ..., tu t'attends explicitement à ce que ... soit un couple de deux valeurs. Donc quand ça n'est pas le cas, ça plante.

              Et pour débuguer, ben il faut suivre le flux d'exécution du programme et comprendre comment se forment les valeurs.

              • Partager sur Facebook
              • Partager sur Twitter
                15 janvier 2020 à 6:48:07 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


                  16 janvier 2020 à 17:39:26

                  salut j'ai besoin d'aide 

                  je voudrais donner une suite logique a ce programme mais je n'arrive pas a savoir comment m'y prendre 

                  pour l'instant le programme se porte bien aucun message d'erreur lors de l'execution 

                  quand je l'exucute la boucle se produit mais mon probleme est le suivant je voudrait que les fonctions de plus haut soeint pris en compte

                  bref le voici

                  en passant si vous pensez quil ya des repetitions au niveaux des fonctions j'ai rajouter des underscore pour differencier

                  from random import randrange
                  
                  choix = 0
                  choix_ = 0
                  choix_defendre = 0
                  
                  
                  
                  b = 1 
                  c = 1
                  
                  print('choisissez votre joueur')
                  
                  print('les avatars a votre disposition\n klause : degat(3.35), armure(2.7), evolution(1.9)\n')
                  
                  print('hudge : degat(2.69), armure(2.6), evolution(2.8)\n ') 
                  
                  print('frost: degat(3,91), armure(2.74), evolution(1.36)\n ')
                  
                  print("yvy : degat(2.1), armure(2.24), evolution(3.1)\n ") 
                  
                  print('lionn : degat(3.1), armure(1.8), evolution(2.83)\n ')
                      
                  a = int(input("avatar_1(1), avatar_2(2) ,avatar_3(3) ,avatar_4(4) ,avatar_5(5) :"))
                  
                  
                  
                  class JOUEUR:
                      
                      def __init__(self, c_pseudo, c_health, c_attack, c_armure, c_damage, c_evolution, a_pseudo, a_health, a_attack, a_armure, a_damage, a_evolution):
                          
                          self.pseudo = c_pseudo
                          self.health = int(c_health)
                          self.attack = int(c_attack)
                          self.armure = int(c_armure)
                          self.damage = int(c_damage)
                          self.evolution = int(c_evolution)
                     
                      #les damage ce sont les ce sont les points d'ataque
                      #damage = attack
                      
                      #j'ai creer une nouvelle fonction pour pouvoir prendre en compte la nation de jeux succesif
                      #pour eviter que le les possibilites soit restraintes
                          
                          
                     
                          
                          self.pseudo_ = a_pseudo
                          self.health_ = int(a_health)
                          self.attack_ = int(a_attack)
                          self.armure_ = int(a_armure)
                          self.damage_ = int(a_damage)
                          self.evolution_ = int(a_evolution)    
                      
                      def pseudo(self):
                          return self.pseudo 
                          
                      def health(self):
                          return self.health
                      
                      def get_attack(self):
                          return self.attack
                      
                      def get_damage(self):
                          
                          self.health -= self.damage_
                          
                          return self.health
                      
                          return self.damage
                          b = self.health
                          return b
                     
                      def armure(self):
                          
                          if self.armure >= self.damage_:
                              
                              self.damage_ -= self.damage_
                          
                          elif self.armure < self.damage_:
                              
                              self.damage_ -= self.armure
                              self.health -= self.damage_
                          return self.health
                          print ("il vous reste", self.health, "s-h d'energie")
                          
                          
                      def evolution(self):
                          
                          if self.health < (100/(self.damage)):
                              
                              self.armure += (4*(self.health))/100
                              self.damage += (2*(self.health)-20)/100
                              
                              return self.armure
                  
                              return self.damage          
                        
                          
                      def pseudo_(self):
                          return self.pseudo_ 
                          
                      def health_(self):
                          return self.health_
                      
                      def attack_(self):
                          return self.attack_
                      
                      def damage_(self):
                          
                          self.health_ -= self.damage
                          
                          return self.health_
                      
                          return self.damage_
                          c = self.health
                          return c
                      
                      def armure_(self):
                          
                          if self.armure_ >= self.damage:
                              
                              self.damage -= self.damage
                          
                          elif self.armure_ < self.damage:
                              
                              self.damage -= self.armure_
                              self.health_ -= self.damage
                          return self.health_
                      
                          print ("il vous reste", self.health_, "s-h d'energie")
                         
                      
                      def get_evolution_(self):
                          
                          if self.health_ < (100/(self.damage)):
                              
                              self.armure_ += (4*(self.health))/100
                              self.damage_ += (2*(self.health)-20)/100
                              
                              return self.armure_
                  
                              return self.damage_
                          
                      def Defense():
                          choix_defendre = input('attaquer(A) ou defndre(D)?')
                          
                          choix_defendre = str(choix_defendre)
                      
                          if choix_defendre == "D":
                              print("vous avez choisi la defense")
                              
                              def bonus_defense(self):
                                  bonus_def_ = 0
                                  bonus_def = 0
                                  
                                  choix = choix_defendre
                              
                                  if choix == choix_defendre:
                                      
                                      bonus_def += 1
                                      
                                      print("bonus defensif :", bonus_def)
                                  
                                      if choix_ == choix_defendre:
                                          bonus_def_ += 1
                                          
                                          print("bonus defensif :", bonus_def_)
                                      
                                      if bonus_def_ == 6:
                                          
                                          print("bonus defensif a fond \n vos point armures sont boostes")
                                          
                                          for i in range(1,4):
                                              self.armure_ = ((self.armure_)*10)/100
                                              bonus_def_ -= 1
                                              
                                              return bonus_def_
                          
                                      return bonus_def
                          
                                  elif choix_defendre == "A":
                                      
                                      print("vous avez choisi l'attaque")
                                      
                                      def bonus_attaque():
                                          
                                          bonus_at_ = 0
                                          bonus_at = 0
                                          choix = choix_defendre
                              
                                          choix_ = choix_defendre
                          
                                          if choix == choix_defendre:
                                              bonus_at += 1
                                              print("vous avez un bous d'attaque", bonus_at)
                                  
                                              if choix_ == choix_defendre:
                                                  bonus_at_ += 1
                                                  print("vous avez un bous d'attaque", bonus_at_)
                                                  
                             
                                          return bonus_at_
                                          return bonus_at_
                  
                  
                      
                  
                  if a == 1:
                      pseudo = input("entrez votre pseudo :")
                      pseudo = str(pseudo)
                      joueur = JOUEUR('pseudo', 100, 3.35, 2.7, 3.35, 1.99) 
                  
                    
                  elif a == 2:
                      pseudo = input("entrez votre pseudo  :")
                      pseudo = str(pseudo)
                      joueur = JOUEUR('pseudo', 100, 2.69, 2.6, 2.69, 2.8)
                  
                  elif a == 3:
                      pseudo = input("entrez votre pseudo : ")
                      pseudo = str(pseudo)
                      joueur = JOUEUR('pseudo', 100, 3.91, 2.74, 3.91, 1.36)
                    
                  elif a == 4:
                      pseudo = input("entrez votre pseudo :")
                      pseudo = str(pseudo)
                      joueur = JOUEUR('pseudo', 100, 2.1, 2.24, 2.1, 3.1)
                    
                  elif a == 5:
                      pseudo = input("entrez votre pseudo :")
                      pseudo = str(pseudo)
                      joueur = JOUEUR('pseudo', 100, 3.1, 1.8, 3.1, 2.83)        
                              
                  
                  
                  
                  nombre = randrange(5)
                  
                  continuer_partie = True
                  
                  if nombre == 0:
                       
                      Machine = JOUEUR('machine', 100, 3.1, 1.8, 3.1, 2.83 )
                  elif nombre == 1:
                      Machine = JOUEUR('machine', 100, 3.35, 2.7, 3.35, 1.99) 
                  elif nombre == 3:
                      Machine = JOUEUR('machine', 100, 2.69, 2.6, 2.69, 2.8)
                  elif nombre == 4:
                      Machine = JOUEUR('machine', 100, 3.91, 2.74, 3.91, 1.36)
                  elif nombre == 2:
                      Machine = JOUEUR('machine', 100, 2.1, 2.24, 2.1, 3.1)
                  
                  while continuer_partie == True:
                      
                      nombre = randrange(5)
                      
                      while joueur.health > 0 or  Machine.health_ > 0:
                          
                          print("joueur1 : {}".format(joueur.pseudo))
                          
                          print("armure : {}".format(joueur.armure))
                          
                          print("attaque : {}".format(joueur.attack))
                          
                          "\n"
                          
                          
                          print("machine : {}".format(joueur.pseudo_))
                          
                          print("armure : {}".format(joueur.armure_))
                          
                          print("attaque : {}".format(joueur.attack_))
                      
                          if continuer_partie == True:

                  -
                  Edité par FortuneEwolo 16 janvier 2020 à 21:04:13

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Deep Learning

                    18 janvier 2020 à 17:39:01

                    Bonjour,

                    dans le cadre des premiers cours, j'ai un message d'erreur " indentation error unexpected indent" bien que j'ai suivi pas à pas l'exemple:

                    if a >0: puis passé à la ligne avec les ..., mais l'indentation qui je crois doit être automatique ne se fait pas .

                    Merci de votre aide

                    Cazaloulou

                    • Partager sur Facebook
                    • Partager sur Twitter
                      21 janvier 2020 à 18:53:58

                      Salut,

                      j'ai un problème avec l'utilisation d'un petit programme enregistré sur le bloc notes et sauvegardé au format py.

                      Quand je double clique ou que je l'ouvre avec python, ça défile en une fraction de secondes sans me demander les variables avec input.

                      j'ai pourtant mis à la fin os.system("pause")

                      Merci si quelqu'un a la solution

                      • Partager sur Facebook
                      • Partager sur Twitter
                        26 janvier 2020 à 17:09:38

                        JeanLouisCazanave a écrit:

                        Bonjour,

                        dans le cadre des premiers cours, j'ai un message d'erreur " indentation error unexpected indent" bien que j'ai suivi pas à pas l'exemple:

                        if a >0: puis passé à la ligne avec les ..., mais l'indentation qui je crois doit être automatique ne se fait pas .

                        Merci de votre aide

                        Cazaloulou

                        Salut,

                        Je suis le cours aussi en ce moment et si je ne me trompe pas, tu dois après les ... faire une tabulation pour créer l'indentation avant de taper tes instructions ;-) (Ce n'est pas automatique)

                        JeanLouisCazanave a écrit:

                        Salut,

                        j'ai un problème avec l'utilisation d'un petit programme enregistré sur le bloc notes et sauvegardé au format py.

                        Quand je double clique ou que je l'ouvre avec python, ça défile en une fraction de secondes sans me demander les variables avec input.

                        j'ai pourtant mis à la fin os.system("pause")

                        Merci si quelqu'un a la solution

                        Cela ne fonctionne pas pour moi non plus. J'ai trouvé une alternative un peu plus adapté (portable et moins lourde):

                        input("Appuyez sur la touche ENTREE pour continuer...")

                        Du coup plus besoin de "import os" ni de "os.system("pause")"

                        Pour ma part j'ai aussi un soucis:

                        J'essaie de faire le 1er exercice et lorsque je lance ce petit code depuis un fichier (que j'ai déjà pas mal décomposé pour voir d'ou vient le soucis), après la ligne 4 la fenêtre se ferme directement, comme si j'avais un soucis dans mon "if"...  

                        print("Bienvenu au ZCasino !!!\n\n Voici avez une cagnotte de 50$ pour commencer.\nBonne chance :-)")
                        chiffre = input("Choisissez un chiffre entre 0 et 49!")
                        print("Vous avez saisi le chiffre ",chiffre)
                        input("Appuyez sur la touche ENTREE pour continuer...")	
                        if chiffre < 0:
                        	print("Attention, le chiffre rentré n'est pas supérieur ou égal à 0!")
                        elif chiffre > 49:
                        	print("Attention, le chiffre rentré n'est pas inférieur ou égal à 49!")
                        else:
                        	print("Vous avez saisi le chiffre ",chiffre)
                        
                        input("Appuyez sur la touche ENTREE pour continuer...")

                        Python 3.8 / Notepad++ / Windows10

                        Quelqu'un peut-il m'aider svp? Merci d'avance.

                        Edit: Problème résolu :)

                        -
                        Edité par KrohM 26 janvier 2020 à 19:05:09

                        • Partager sur Facebook
                        • Partager sur Twitter
                          26 janvier 2020 à 17:21:32

                          KrohM a écrit:

                          JeanLouisCazanave a écrit:

                          Bonjour,

                          dans le cadre des premiers cours, j'ai un message d'erreur " indentation error unexpected indent" bien que j'ai suivi pas à pas l'exemple:

                          if a >0: puis passé à la ligne avec les ..., mais l'indentation qui je crois doit être automatique ne se fait pas .

                          Merci de votre aide

                          Cazaloulou

                          Salut,

                          Je suis le cours aussi en ce moment et si je ne me trompe pas, tu dois après les ... faire une tabulation pour créer l'indentation avant de taper tes instructions ;-) (Ce n'est pas automatique)

                          Pour ma part j'ai aussi un soucis:

                          J'essaie de faire le 1er exercice et lorsque je lance ce petit code depuis un fichier (que j'ai déjà pas mal décomposé pour voir d'ou vient le soucis), après la ligne 4 la fenêtre se ferme directement, comme si j'avais un soucis dans mon "if"...  

                          print("Bienvenu au ZCasino !!!\n\n Voici avez une cagnotte de 50$ pour commencer.\nBonne chance :-)")
                          chiffre = input("Choisissez un chiffre entre 0 et 49!")
                          print("Vous avez saisi le chiffre ",chiffre)
                          input("Appuyez sur la touche ENTREE pour continuer...")	
                          if chiffre < 0:
                          	print("Attention, le chiffre rentré n'est pas supérieur ou égal à 0!")
                          elif chiffre > 49:
                          	print("Attention, le chiffre rentré n'est pas inférieur ou égal à 49!")
                          else:
                          	print("Vous avez saisi le chiffre ",chiffre)
                          
                          input("Appuyez sur la touche ENTREE pour continuer...")

                          Python 3.8 / Notepad++ / Windows10

                          Quelqu'un peut-il m'aider svp? Merci d'avance.

                          -
                          Edité par KrohM il y a moins de 30s


                          Bonjour,

                          Combien existe-t-il de façon d'utiliser Input ?

                          Ca fait longtemps que je n'ai pas fait de Python..

                          • Partager sur Facebook
                          • Partager sur Twitter
                            28 janvier 2020 à 8:50:57

                            Une seule, pour lire une ligne sur l'entrée du programme.

                            Votre problème de fenêtre qui se ferme est plutôt à régler au niveau du système d'exploitation.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              29 janvier 2020 à 10:56:45

                              Bonjour,

                              Ce code ne s'exécute pas. Il semble pourtant conforme au cours.

                                1 #!/usr/bin/python
                                2 #coding utf-8
                                3 
                                4 def table(nb):
                                5     nb = 7
                                6     i = 0
                                7     while i < 10:
                                8         print(i + 1, "*",nb, "=", (i + 1) * nb)
                                9         i += 1
                              

                              Merci de m'aider svp.



                              • Partager sur Facebook
                              • Partager sur Twitter
                                29 janvier 2020 à 11:02:17

                                Qu'entends-tu par "ne s'exécute pas" ? Il n'y a pas de problèmes de syntaxe ou autre dans ce code (si l'on omet les numéros de ligne).

                                Il y a d'autres problèmes, comme celui de ne pas utiliser le paramètre de la fonction ou d'avoir une boucle while à la place d'un for, mais ça n'empêche pas la bonne exécution.

                                Et le code ne fait pas grand chose si la fonction n'est jamais appelée.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  29 janvier 2020 à 12:47:57

                                  Ce code est exactement celui que l'on peut trouver dans le cours sur le python à la leçon : " Avancez pas à pas vers la modularité (1/2)"

                                  Il est exécuté comme tout ce que j'ai testé sous Debian Buster dans une console avec Vim comme éditeur. Une fois le code écrit dans Vim. Il suffit de le lancer en console avec : Python3 mon_code en appuyant sur la touche Entrée.

                                  Il en va de même pour ces lignes de code du même cours

                                    1 #!/usr/bin/python
                                    2 #coding utf-8
                                    3 
                                    4 def table(nb, max=10):
                                    5     nb = 7
                                    6     (max >= 0)
                                    7     i = 0
                                    8     while i < max:
                                    9         print(i + 1, "*", nb, "=", (i + 1) * nb)
                                   10         i += 1
                                  



                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    29 janvier 2020 à 14:53:10

                                    Bonjour

                                    Alors il faut que dans ton programmes tu mettes :

                                    table (3)

                                    si tu veux appeler la fonction avec nb = 3

                                    Ça appelle la fonction

                                    Les deux codes que tu as postés, ça définit la fonction. Après il faut l'appeler pour qu'elle s'exécute

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      29 janvier 2020 à 15:39:59

                                      Merci. Cela ne change rien. L'exécution ne se fait pas. J'ai pu constater dans la suite que la fonction def fonctionne parfaitement avec l'exemple suivant donné dans la leçon.

                                      Je passe à la suite. Merci encore pour votre aide.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        30 janvier 2020 à 5:23:34

                                        Bonsoir,

                                        Rassurez-moi mais en temps que membre premium, je n'ai en principe pas de limite de temps pour rendre mes exercices. 

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          30 janvier 2020 à 10:35:22

                                          Bonjour à tous,

                                          Voici ma "copie"pour l'exercice ZCasino du cours débutant pour Python (https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/231735-tp-tous-au-zcasino ):

                                          #coding:utf-8
                                          # Jeu du Zcasino
                                          
                                          JeuEnCours = True
                                          print("Bienvenue au jeu du Zcasino:")
                                          while JeuEnCours:
                                          
                                              import os
                                              from random import randrange
                                              from math import ceil
                                          
                                          
                                          
                                          
                                              NumeroClient = input("Choisissez un nombre entre 0 et 49?")
                                              try:
                                                  NumeroClient = int(NumeroClient)
                                                  assert 0<= NumeroClient <50
                                              except AssertionError:
                                                  print("Le nombre choisi n'est pas dans l'intervalle demandé")
                                                  continue
                                              except ValueError:
                                                  print("Vous n'avez pas saisi un numéro")
                                                  continue
                                              except:
                                                  print("Oups...il y a eu un bug!!")
                                          
                                              SommeClient = input("Quelle somme souhaitez vous miser?")
                                              try:
                                                  SommeClient = float(SommeClient)
                                              except ValueError:
                                                  print("Vous n'avez pas saisi un nombre") #Comment revenir uniquement à la saisie de la somme et non tout au début de la boucle, boucle while??
                                                  continue
                                              except:
                                                  print("Oups...il y a eu un bug!!")
                                              else:
                                                  NumeroRoulette = randrange(50)
                                                  print("Le numéro sortant est le {}!!".format(NumeroRoulette))
                                                  SommeVictoire1 = ceil(SommeClient * 3)
                                                  SommeVictoire2 = ceil(SommeClient * 1.5)
                                                  if NumeroClient == NumeroRoulette:
                                                      print("Féliciations ! Vous avez gagner la somme de {}$".format(SommeVictoire1))
                                                  elif (NumeroClient % 2 == 0) and (NumeroRoulette%2 == 0) or (NumeroClient % 2 != 0) and (NumeroRoulette%2 != 0):
                                                      print("Féliciations ! Vous avez gagner la somme de {}$".format(SommeVictoire2))
                                                  else:
                                                      print("Perdu, ce sera pour une autre fois")
                                          
                                                  while True:
                                                      lettres = ["o","n","N","n"]
                                                      RelanceJeu = input("Voulez vous rejouer -saisir:o/n?")
                                                      try:
                                                          if RelanceJeu not in lettres:
                                                              print("Vous n'avez pas saisi la bonne lettre")
                                                              continue
                                                      except:
                                                          print("Oups...il y a eu un bug!!")
                                                      else:
                                                          if RelanceJeu == "o" or RelanceJeu == "O":
                                                              break
                                                              continue
                                                          else:
                                                              print("A une autre fois")
                                                              JeuEnCours = False              
                                          
                                          
                                          
                                          os.system("pause")

                                          J'ai un problème dans la deuxième boucle ici:

                                          else:
                                                          if RelanceJeu == "o" or RelanceJeu == "O":
                                                              break
                                                              continue
                                                          else:
                                                              print("A une autre fois")
                                                              JeuEnCours = False


                                          Voici ce qui se passe si je choisi de ne pas rejouer:

                                          Voulez vous rejouer -saisir:o/n?n
                                          A une autre fois
                                          Choisissez un nombre entre 0 et 49?

                                          En choisissant de rejouer (donc saisie de "o" ou "O") le programme s'exécute correctement. De même en choisissant une lettre différente de celles nécessaires.

                                          Je comprend la deuxième boucle de la façon suivante:

                                          1- Si je tape "o" ou "O", je sors de la deuxième boucle ("break") et je remonte au début de ma grande boucle ("continue") donc le début du jeu. Cela fonctionne (mais c'est peut être un coup de chance :) )

                                          2- Si je saisie"n" ou "N" (compte tenu de la présence du Try précédent) le message "A une autre fois s'affiche", je sors et le jeu s'arrête ("JeuEnCours = False").

                                          Pourriez vous m'éclairer sur mon erreur dans cette deuxième boucle (ou ailleurs :) )

                                          Merci d'avance pour votre réponse et le temps consacré !

                                          Bien cordialement

                                          -
                                          Edité par ReneA 30 janvier 2020 à 11:17:17

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            30 janvier 2020 à 12:26:25

                                            Salut,

                                            Les mots-clés break/continue ne s'appliquent qu'à la boucle juste autour, il n'est pas possible de remonter à une boucle plus haut.

                                            Ainsi, un break directement suivi d'un continue n'a pas de sens, seul le break est pris en compte (et fait directement sortir de la boucle, donc on ne passe jamais sur continue).

                                            Quant à ton continue dans le cas du n, il passe bien à la prochaine itération… d'une boucle infinie.

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              30 janvier 2020 à 12:53:35

                                              Salut tout le monde,

                                              c'est la première fois que je suis sur un forum du coup désolée si je suis pas au bon endroit, mais je retombe toujours ici quand je cherche ^^"

                                              j'ai cette consigne:

                                              Écrire une fonction (dont vous choisirez le nom) qui retourne le carré d'un nombre fourni en argument ainsi que la chaîne de caractère associée à ce nombre, puis l'utiliser dans une autre fonction 'bar' qui retourne la chaîne de caractères 'le carre de _a_ vaut _b_'  (par exemple l'instruction "print(bar(3))" doit renvoyer "le carre de 3 vaut 9").

                                              et j'ai écrit ça, ça marche sur python mais ça me marque que c'est pas correct quand je l'entre dans la plateforme de quiz de ma fac ^^'

                                              merci d'avance :)

                                              def pla(n):
                                                  res = n**2
                                                  return res



                                              def bar(n):
                                                 
                                                  return "le carré de", n,"vaut", pla(n)
                                                 
                                                  print (bar(n))

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                31 janvier 2020 à 8:20:06

                                                Bonjour,

                                                @ entwanne: "il n'est pas possible de remonter à une boucle plus haut". Il n'y a aucune solution ou pas de solution à mon niveau?

                                                Bien cordialement


                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  31 janvier 2020 à 10:32:45

                                                  Judith, il faut utiliser un tuple comme valeur de retour de la fonction, puisqu'on demande qu'elle retourne deux choses.

                                                  def tuplecarre(n):
                                                      res = n**2
                                                      ch_res = str(res)
                                                      t = (res, ch_res)
                                                      return t
                                                  
                                                  def bar(n) :
                                                  	reel = tuplecarre(n)[0]
                                                  	chaine = tuplecarre(n)[1]
                                                  
                                                  	return "le carré de " + str(n) + " vaut " + chaine
                                                  
                                                  
                                                  print(bar(5))



                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

                                                    31 janvier 2020 à 12:41:02

                                                    ReneA a écrit: > @ entwanne: "il n'est pas possible de remonter à une boucle plus haut". Il n'y a aucune solution ou pas de solution à mon niveau?

                                                    Il est impossible d'influer sur la boucle extérieur avec un break / continue, mais il y a d'autres manière de procéder.

                                                    Par exemple embarquer le tout dans une fonction pour pouvoir utiliser return et donc stopper toutes les boucles en sortant de la fonction.

                                                    Il est aussi possible d'utiliser des flags booléens dans les condition des boucles, et donc de changer leur valeur pour choisir quand continuer / sortir.

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      31 janvier 2020 à 15:08:05

                                                      Bonjour, en suivant le cours Python d'Openclassrooms je me suis rendu compte que j'avais besoin de faire des exercices simples. J'en ai trouvé sur https://python.developpez.com/cours/apprendre-python-3/?page=exercices-corriges.

                                                      Je n'arrive pas à voir ce qui ne va pas dans le petit bout de code suivant qui me renvoie :  

                                                      if quitter == "o":
                                                      NameError: name 'quitter' is not defined

                                                        1 #!/usr/bin/python
                                                        2 # coding utf-8
                                                        3 
                                                        4 continuer = True
                                                        5 while continuer:
                                                        6     prix = input("Entrez le prix HT : ")
                                                        7     prix = float(prix)
                                                        8     prix_TTC = (prix * 1.2)
                                                        9     prix_TTC= float(prix_TTC)
                                                       10     print("Le prix TTC est : ", prix_TTC)
                                                       11     break
                                                       12     quitter = o
                                                       13 if quitter == "o":
                                                       14    continuer = False
                                                      

                                                      La boucle devrait devrait normalement permettre de refaire le calcul du prix TTC indéfiniment jusqu'à l'entrée au clavier de "o" . (Le corrigé donné sur "Developpez com" ne fonctionne pas tout en étant trop élaboré pour un débutant.)

                                                      Merci pour votre aide.

                                                       

                                                      -
                                                      Edité par Julius Eliot 31 janvier 2020 à 15:08:59

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        31 janvier 2020 à 15:41:45

                                                        Bonjour,

                                                        Ton break te propulse hors de la boucle while sur ton if, sans passer par la case quitter = o...

                                                        -
                                                        Edité par ArnaudNevers 31 janvier 2020 à 15:42:15

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          31 janvier 2020 à 16:16:17

                                                          C'est vrai. Je l'avais mis un peu par hasard parce que sans lui il me semblait qu'il y avait une erreur.

                                                          Merci beaucoup. Malgré tout l'arrêt de la boucle n'est pas très joli (ValueError: could not convert string to float: 'o' ) Comment pourrai-je avoir un arrêt et une sortie plus propres ?

                                                          -
                                                          Edité par Julius Eliot 31 janvier 2020 à 16:17:45

                                                          • 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