Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème du jeu plus ou moins...

    3 juillet 2010 à 16:48:12

    C'est plus ou moins expliqué ici ;)

    Voici le morceau de texte :

    Citation : 6pri1 & prolixe

    Utiliser les triple guillemets pour encadrer une chaîne de caractères dispense d'échapper les guillemets, les apostrophes, et permet d'écrire plusieurs lignes sans symboliser les retours à la ligne grâce à "\n".

    >>> chaine3 = """Ceci est un nouvel
    ... essai sur plusieurs
    ... lignes"""
    >>>
    


    • Partager sur Facebook
    • Partager sur Twitter
      3 juillet 2010 à 18:14:01

      Citation : Plug'n'Play 512


      Voici le morceau de texte :

      Citation : 6pri1 & prolixe

      Utiliser les triple guillemets pour encadrer une chaîne de caractères dispense d'échapper les guillemets, les apostrophes, et permet d'écrire plusieurs lignes sans symboliser les retours à la ligne grâce à "\n".

      >>> chaine3 = """Ceci est un nouvel
      ... essai sur plusieurs
      ... lignes"""
      >>>
      





      Le problème c'est que c'est plus compliqué que ça :


      >>> z=""" son exemple était :
      ... chaine3 = """Ceci est un nouvel
        File "<stdin>", line 2
          chaine3 = """Ceci est un nouvel
                          ^
      SyntaxError: invalid syntax
      >>>
      


      • Partager sur Facebook
      • Partager sur Twitter
        3 juillet 2010 à 19:03:37

        Il faut échapper les guillemets de façon à ne pas en avoir 3 de suite, de la même façon qu'on échappe les apostrophes quand on délimite les chaînes de caractères avec '.

        Rien de nouveau ni de compliqué en somme.
        • Partager sur Facebook
        • Partager sur Twitter
          3 juillet 2010 à 19:37:02

          Citation : EMC1

          Il faut échapper les guillemets de façon à ne pas en avoir 3 de suite, de la même façon qu'on échappe les apostrophes quand on délimite les chaînes de caractères avec '.

          Rien de nouveau ni de compliqué en somme.



          Certes sauf que le cours dit le contraire de ce que tu dis :

          toi : Il faut échapper les guillemets

          Le cours : Utiliser les triple guillemets pour encadrer une chaîne de caractères dispense d'échapper les guillemets

          (au passage il manque un "s" à triple).

          Il ne s'agit pas non plus de simplifier au point de rendre faux.
          • Partager sur Facebook
          • Partager sur Twitter
            6 juillet 2010 à 16:57:21

            Salut c'est encore moi :p J'ai pensé que poster 50 sujets différents alors que le problème est du même type ça sert à rien alors je reposte :p

            J'ai décidé de refaire (encore !) le jeu plus ou moins afin de l'améliorer depuis que j'ai appris les fonctions et modules. Mais dès le début je rencontre un problème :

            import os
            from random import randrange
            
            print """
            \t\t\t\t=== LE JEU DU PLUS OU MOINS ===
            
            Mode solitaire (tapez 1)
            Mode multijoueur (tapez 2)
            
            Votre choix ?"""
            
            choixMode = False
            while choixMode == False:
                
                choixMode = input()
            
                if choixMode != 1 and choixMode != 2:
                    print("Veuillez entrer un choix valide !")
            
                else:
                    choixMode = True
            

            Ils me disent qu'il y a une erreur de syntaxe, pourtant je suis certain d'avoir bien codé o_O Où est le blem ? :(
            • Partager sur Facebook
            • Partager sur Twitter
              6 juillet 2010 à 17:15:52

              Le code fonctionne correctement chez moi sous Python 2.6 et je ne vois pas d'incompatibilité syntaxique avec Python 3 (toutefois tu dois convertir choixMode en int pour ta comparaison).
              • Partager sur Facebook
              • Partager sur Twitter
                6 juillet 2010 à 17:23:52

                Citation : EMC1

                (toutefois tu dois convertir choixMode en int pour ta comparaison).


                Effectivement ;)

                Et pourtant je vous jure qu'il m'affiche une jolie petite boîte de dialogue dans laquelle est affiché "invalid syntax"...
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  6 juillet 2010 à 17:27:58

                  Ca fonctionne chez moi aussi
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    6 juillet 2010 à 17:29:03

                    Et si tu rajoutait des parenthèse à ta fonction print ? :-°
                    • Partager sur Facebook
                    • Partager sur Twitter
                      6 juillet 2010 à 17:47:10

                      Non non, les triples quotes ne requiert pas de parenthèses...
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        6 juillet 2010 à 17:48:13

                        Si si, ou alors tu enlèves le print est sa devient une chaine de documentation !! ;)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          6 juillet 2010 à 17:49:10

                          Puisque je te dis que non ^^
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            6 juillet 2010 à 17:54:25

                            Bon,

                            En python 3, print est une fonction et si tu veux l'utiliser tu dois mettre des parenthèses !!

                            Sinon tu l'enlèves de devant ta chaine !!

                            exemple qui fonctionne chez moi avec Python 3 :
                            from random import randrange
                            
                            print ("""
                            \t\t\t\t=== LE JEU DU PLUS OU MOINS ===
                            
                            Mode solitaire (tapez 1)
                            Mode multijoueur (tapez 2)
                            
                            Votre choix ?""")
                            while True:
                                choixMode = int(input())
                                if choixMode != 1 and choixMode != 2:
                                    print("Veuillez entrer un choix valide !")
                                else:
                                    break
                            


                            Edite: rèctification de quelque erreurs ^^
                            • Partager sur Facebook
                            • Partager sur Twitter
                              6 juillet 2010 à 17:56:22

                              Effectivement, je n'avais pas remarquer ce print en fait, mais comme pour toutes fonction, les parenthèses sont absolument obligatoires.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                6 juillet 2010 à 17:57:33

                                Ben alors pourquoi ça marche avec vous sans les parenthèses ? o_O
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  6 juillet 2010 à 18:00:16

                                  Ca marche quand on utilise Python 2 où print n'est pas une fonction.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    6 juillet 2010 à 18:01:10

                                    OK.

                                    Je m'en vais changer direct de version moi o_O
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      6 juillet 2010 à 18:03:32

                                      Parce-qu'ils utilisent Python 2 :beurk: !! :-°

                                      Citation : Gryfalo

                                      Je m'en vais changer direct de version moi o_O


                                      Ne fais surtout pas ça, reste du bon coté de la force, jeune padawan !! :p
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        6 juillet 2010 à 19:37:42

                                        Le code suivant fonctionne :
                                        # -*- coding: utf-8 -*-
                                        
                                        import os, random
                                        
                                        print("""
                                        \t\t\t\t=== LE JEU DU PLUS OU MOINS ===
                                        
                                        Mode solitaire (tapez 1)
                                        Mode multijoueur (tapez 2)
                                        
                                        Votre choix ?""")
                                        
                                        choix_mode = None
                                        while choix_mode is None:
                                            choix_mode = int(input())
                                            if choix_mode not in [1, 2]:
                                                print("Veuillez entrer un choix valide !")
                                                choix_mode = None
                                        
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          6 juillet 2010 à 23:11:14

                                          Bien, je viens à l'instant d'achever mon code, il a l'air de bien fonctionner, mais j'aimerais que vous me disiez s'il y a des choses à améliorer, si j'ai des mauvaises habitudes... :-° Ben quoi j'veux progresser moi ! ^^ Voilà le code :

                                          # -*- coding: cp1252 -*-
                                          ############################## OK alors ça ce sont les modules.
                                          import os
                                          from random import randrange
                                          
                                          ############################## Voilà, donc c'est la fonction permettant de déterminer "nombreMystere" au cas où on a choisi le mode multi.
                                          def multijoueur(nombreMystere, MIN, MAX):
                                                  print """\nJoueur 1, entrez le nombre mystère (entre 1 et 100) que le joueur 2 doit trouver :"""
                                          
                                                  while nombreMystere < MIN or nombreMystere > MAX:
                                                      nombreMystere = input()
                                                      nombreMystere = int(nombreMystere)
                                          
                                                      if nombreMystere < MIN or nombreMystere > MAX:
                                                          print """Vous devez entrer un nombre compris entre 1 et 100 !"""
                                          
                                                      else:
                                                          print """\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"""
                                                          return nombreMystere
                                          
                                          
                                          ############################## Et là c'est la fonction qui permet à l'utilisateur de choisir son lvl.
                                          def difficultee(MAX):
                                              print """\n1 / 100 (tapez 1)
                                          1 / 500 (tapez 2)
                                          1 / 1000 (tapez 3)
                                          
                                          Votre choix ?"""
                                              choixDifficultee = False
                                              while choixDifficultee == False:
                                                  
                                                  choixDifficultee = input()
                                          
                                                  if choixDifficultee < 1 or choixDifficultee > 3:
                                                      print """Veuillez entrer un choix valide !"""
                                                      choixDifficultee = False
                                          
                                                  elif choixDifficultee == 1:
                                                      choixDifficultee = 1
                                                      MAX = 100
                                                      return MAX
                                          
                                                  elif choixDifficultee == 2:
                                                      choixDifficultee = 2
                                                      MAX = 500
                                                      return MAX
                                          
                                                  else:
                                                      choixDifficultee = 3
                                                      MAX = 1000
                                                      return MAX
                                                  
                                          recommencer = True
                                          while recommencer == 1:
                                              
                                          ############################## Les variables
                                              MIN, MAX, nombreMystere = nombreEntre = 1, 100, 0
                                              compteur = 0
                                          
                                              print """
                                          \t\t\t\t=== LE JEU DU PLUS OU MOINS ===
                                          
                                          Mode solitaire (tapez 1)
                                          Mode multijoueur (tapez 2)
                                          
                                          Votre choix ?"""
                                          
                                              choixMode = False
                                              while choixMode == False:
                                                  
                                                  choixMode = input()
                                          
                                                  if choixMode < 1 or choixMode > 2:
                                                      print """Veuillez entrer un choix valide !"""
                                                      choixMode = False
                                          
                                                  elif choixMode == 1:
                                                      choixMode = 1
                                          
                                                  else:
                                                      choixMode = 2
                                          
                                              if choixMode == 1:
                                                  MAX = difficultee(MAX)
                                                  nombreMystere = randrange(MIN, MAX)
                                                  print """"""
                                          
                                              else:
                                                  nombreMystere = multijoueur(nombreMystere, MIN, MAX)
                                          
                                          ############################## Et c'est parti ! On essaye de trouver le nombre...
                                              while nombreEntre != nombreMystere:
                                                  print """Quel est le nombre (entre 1 et""", MAX,""") ?"""
                                                  nombreEntre = input()
                                                  nombreEntre = int(nombreEntre)
                                          
                                                  if nombreEntre < MIN or nombreEntre > MAX:
                                                      compteur -= 1
                                                      print """Veuillez proposer un nombre compris entre 1 et""", MAX,""" !\n"""
                                                      
                                                  elif nombreEntre < nombreMystere:
                                                      
                                                      print """C'est plus !\n"""
                                                      
                                                  elif nombreEntre > nombreMystere:
                                                      
                                                      print """C'est moins !\n"""
                                                      
                                                  else:
                                                      compteur += 1
                                                      print """Félicitations, vous avez trouvé le nombre mystère en""", compteur, """coup(s) !!!\n"""
                                          
                                                  compteur += 1
                                          
                                          ############################## On demande à l'utilisateur s'il veut recommencer...
                                              print """Recommencer une partie (tapez 1)
                                          Quitter (tapez 2)
                                          
                                          Votre choix ?"""
                                          
                                              recommencer = False
                                              while recommencer == False:
                                                  
                                                  recommencer = input()
                                          
                                                  if recommencer < 1 or recommencer > 2:
                                                      print """Veuillez entrer un choix valide !"""
                                                      recommencer = False
                                          
                                                  elif recommencer == 1:
                                                      recommencer = 1
                                          

                                          Si vous avez un peu de temps ça serait vraiment sympa :)
                                          Je pensais encore l'améliorer avec des try...except quand j'aurais le temps ^^ Mais bon écrire 131 lignes de code non-stop ça fatigue... :-°
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Anonyme
                                            6 juillet 2010 à 23:21:44

                                            ligne 10 et 11 tu peux factoriser
                                            Le menu tu peux le mettre sous forme de dictionnaire si tu as vu les dicos

                                            Voila déjà pour moi
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              6 juillet 2010 à 23:24:35

                                              C'est quoi la factorisation o_O
                                              Et non j'ai pas encore vu les dicos :p

                                              Faut pas oublier que je viens de terminer la partie 1, et donc c'est pour ça que je vous ai envoyé ce code, c'est pour voir où j'en suis ;)
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Anonyme
                                                6 juillet 2010 à 23:27:05

                                                alors entre la ligne 10 et 11 tu peux la transformer en une seule ligne assez simple

                                                nombreMystere=int(input())
                                                


                                                Pour les dicos tu verras donc plus tard c'est assez sympa

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  6 juillet 2010 à 23:39:39

                                                  Tu peux remplacer ta ligne 18 où tu essayes de cacher ce qu'a entré le précédent utilisateur par un :

                                                  import os
                                                  os.system("clear")
                                                  


                                                  sous Gnu/Linux ou tu remplaces clear par cls sous Windows.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Anonyme
                                                    7 juillet 2010 à 0:10:26

                                                    :'( Y'en a plus que pour les vieux de nos jours... Et la jeune génération est discriminée par tous. Ouiiin!!
                                                    Que de haine envers ce nouveau né qu'est Python 3, même pas sorti de son berceau que plus personne n'en veut... Ouiiin !! :'(

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    Problème du jeu plus ou moins...

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