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).
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.
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...")
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..
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.
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
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.
#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é !
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.
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 ^^'
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.
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
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
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
Deep Learning
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique