Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec définition de fonction

Sujet résolu
    26 janvier 2020 à 23:15:52

    Salut :),

    Alors voilà j'essaie de faire le premier TP du cours et je dois faire un truc mal surement dans ma définition de fonction...

    J'ai essayé en restreignant à fond mon code (d'où tousl es commentaires) mais je ne vois toujours pas...:euh:

    *Il y a surement d'autres bourdes dans mon code que je verrais après...:-°

    Pouvez-vous m'aider svp?

    print("Bienvenu au ZCasino !!!\n\n Voici avez une cagnotte de 50$ pour commencer.\nBonne chance :-)")
    
    input("Appuyez sur la touche ENTREE pour continuer...")			
    
    def choisir_pari(montantDisponible)
    	# chiffreOoR = False
    	# montantOoR = False
    	# i = 0
    	# j = 0
    # Vérification si le chiffre rentré correspond aux critères
    		# while chiffreOoR == True or i<5:
    		# while i<5:
    			# chiffre = int(input("Choisissez un chiffre entre 0 et 49!"))
    			# if chiffre<0 or chiffre>49:
    				# print("Attention, le chiffre rentré n'est pas compris entre 0 et 49")
    				# chiffreOoR = True
    				# i += 1
    			# else:
    				# chiffreOoR = False
    # Vérification si le montant rentré est disponible
    		# while montantOoR == True or j<5:
    	montant = int(input("Choisissez une mise entre 0 et "+str(montantDisponible)))
    			# if montant>montantDisponible:
    				# print("Attention, le mise rentrée n'est pas disponible\nVotre cagnotte s'élève à ", montantDisponible)
    				# montantOoR = True
    				# j += 1
    			# else:
    				# montantOoR = False	
    # return(chiffre,montant)
    		
    test1,test2=choisir_pari(50)
    print(test1)
    print(test2)
    input("Appuyez sur la touche ENTREE pour continuer...")



    Merci d'avance.

    -
    Edité par KrohM 26 janvier 2020 à 23:18:22

    • Partager sur Facebook
    • Partager sur Twitter
      27 janvier 2020 à 0:38:57

      Tu as oublié les deux points à la fin de la ligne 5.
      • Partager sur Facebook
      • Partager sur Twitter
        27 janvier 2020 à 8:14:54

        En effet erreur bête...:euh: merci

        Maintenant j'ai l'impression de ne jamais sortir de ma boucle while...

        Et lorsque cela sort, cela ne va pas à la ligne (17) mais sort directement

        def choisir_pari(montantDisponible):
        	chiffreOoR = False
        	montantOoR = False
        	i = 0
        	j = 0
        # Vérification si le chiffre rentré correspond aux critères
        	while chiffreOoR == True or i<3:
        		chiffre = int(input("Choisissez un chiffre entre 0 et 49 : "))
        		if chiffre<0 or chiffre>49:
        			print("Attention, le chiffre rentré n'est pas compris entre 0 et 49!\nIl vous reste ",5-i," tentatives.")
        			chiffreOoR = True
        			i += 1
        		else:
        			chiffreOoR = False
        # Vérification si le montant rentré est disponible
        		# while montantOoR == True or j<5:
        	montant = int(input("Choisissez une mise entre 0 et "+str(montantDisponible)+": "))
        			# if montant>montantDisponible:
        				# print("Attention, le mise rentrée n'est pas disponible\nVotre cagnotte s'élève à ", montantDisponible)
        				# montantOoR = True
        				# j += 1
        			# else:
        				# montantOoR = False	
        	return(chiffre,montant)

        Quelle est ma nouvelle bourde? :euh:

        Edit: en fait ça ne sort même plus de la boucle, même lorsque i>3...

        -
        Edité par KrohM 27 janvier 2020 à 8:29:32

        • Partager sur Facebook
        • Partager sur Twitter
          27 janvier 2020 à 9:21:39

          C'est ta condition est est fausse, il faut mettre un and pas un or  (et initialiser chiffreOor à True).

          Sinon quand on fait un while avec un incrément, en général c'est qu'il faut un for :

          for i in range(3):
              chiffre = int(input("Choisissez un chiffre entre 0 et 49 : "))
              if 0 <= chiffre <= 49:
                  break
              print(
                  "Attention, le chiffre rentré n'est pas compris entre 0 et 49!\nIl vous reste",
                  2 - i,
                  "tentatives.",
              )



          • Partager sur Facebook
          • Partager sur Twitter
            27 janvier 2020 à 10:18:09

            Merci. Bon du coup j'ai mis 

            for i in range(3):

            et j'ai retirer le else et le chiffreOoR. Ca fonctionne bien :)

            Par contre quel est l’intérêt du break dans ton code?

            • Partager sur Facebook
            • Partager sur Twitter
              27 janvier 2020 à 11:14:23

              c'est pour stopper la boucle si le chiffre est ok

              • Partager sur Facebook
              • Partager sur Twitter
                27 janvier 2020 à 11:46:00

                Ok merci.

                J'ai gardé la même logique que j'avais mais en ajoutant un "else: break" pour sortir de la boucle ;-)

                • Partager sur Facebook
                • Partager sur Twitter

                Problème avec définition de fonction

                × 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