Reprendre le résultat d'une definition précédente
Résolu/Fermé
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
-
17 déc. 2020 à 15:18
lou_9631 Messages postés 20 Date d'inscription jeudi 17 décembre 2020 Statut Membre Dernière intervention 19 décembre 2020 - 19 déc. 2020 à 16:59
lou_9631 Messages postés 20 Date d'inscription jeudi 17 décembre 2020 Statut Membre Dernière intervention 19 décembre 2020 - 19 déc. 2020 à 16:59
A voir également:
- Reprendre le résultat d'une definition précédente
- Lexer resultat - Télécharger - Sport
- Resultat foot - Télécharger - Vie quotidienne
- Comment reprendre un message sur whatsapp - Guide
- Resultat loto d'aujourd'hui rdc ✓ - Forum Excel
- Évariste souhaite télécharger le logiciel mozilla firefox depuis le site de son éditeur. sélectionnez le résultat de recherche sur lequel il doit cliquer. ✓ - Forum Microsoft Edge / Internet Explorer
12 réponses
jee pee
Messages postés
40566
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 décembre 2024
9 460
17 déc. 2020 à 15:39
17 déc. 2020 à 15:39
bonjour,
mais une telle façon de faire ne permet pas de retrouver plus tard le nom du joueur, il faut utiliser une variable
print(identification() ,end='')
mais une telle façon de faire ne permet pas de retrouver plus tard le nom du joueur, il faut utiliser une variable
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 17 déc. 2020 à 16:12
Modifié le 17 déc. 2020 à 16:12
Bonjour,
dans ta fonction identification, tu écris return(input())
il faudrait mieux écrire:
puis, ici, le return ne sert à rien, et il manque () après identification :
dans ta fonction identification, tu écris return(input())
il faudrait mieux écrire:
def identification(): nom = input('nom ? ') return(nom)
puis, ici, le return ne sert à rien, et il manque () après identification :
def presentation(): print('Bienvenue ' ,end='') identification() print(' le but du 421 est de lancer 3 dés et de sortir 4, 2, et 1 ')
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
17 déc. 2020 à 16:25
17 déc. 2020 à 16:25
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
>
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
Modifié le 17 déc. 2020 à 18:14
Modifié le 17 déc. 2020 à 18:14
Bien sûr !
il ne faut pas appeler identification
Il faut juste appeler présentation
Car présentation appelle elle même identification
ca donne ça :
il ne faut pas appeler identification
Il faut juste appeler présentation
Car présentation appelle elle même identification
def identification(): nom = input('nom ? ') return(nom) def presentation(): print('\nBienvenue ! ' ,end='') identification() print('le but du 421 est de lancer 3 dés et de sortir 4, 2, et 1 ') presentation()
ca donne ça :
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
>
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
17 déc. 2020 à 18:51
17 déc. 2020 à 18:51
Ca marche merci beaucoup pour ton aide
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
17 déc. 2020 à 19:57
17 déc. 2020 à 19:57
Bon vu que mon problème à été résolu et j'ai un deuxième problème dans le même genre je le poste ici
pourquoi dans le programme au dessus le résultat affiché est toujours dommage même quand je tombe sur 421 .
def affiche_lancer(a,b,c): print('+---+ ' , end='') print('+---+ ' , end='') print('+---+') print('| ' , end='') print(a , end='') print(' | ' , end='') print('| ' , end='') print(b , end='') print(' | ' , end='') print('| ' , end='') print(c , end='') print(' | ') print('+---+ ' , end='') print('+---+ ' , end='') print('+---+') return a,b,c def affiche_resultat(): if affiche_lancer(de(),de(),de())==((1,2,4) or (1,4,2) or (2,1,4) or (2,4,1) or (4,1,2) or (4,2,1)): print('bien joué') else: print('dommage')
pourquoi dans le programme au dessus le résultat affiché est toujours dommage même quand je tombe sur 421 .
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 18 déc. 2020 à 10:44
Modifié le 18 déc. 2020 à 10:44
Bonjour lou,
C'est forcément parce qu'il y a un problème ici, tu ne crois pas ?
Le test n'est pas bon, donc on tombe toujours dans le
Déjà, c'est quoi
C'est une fonction? On ne la voit pas dans ton code .......
Tu devrais afficher le code complet, ce serait plus compréhensible
Ensuite, tu devrais revoir ton cours sur le langage Python:
On n'écris pas :
if(a == 1 or 2 or 3 or 4):
mais :
if(a==1 or a==2 or a==3 or a==4):
Une astuce supplémentaire:
si de() renvoie un dé
C'est forcément parce qu'il y a un problème ici, tu ne crois pas ?
if affiche_lancer(de(),de(),de())==((1,2,4) or (1,4,2) or (2,1,4) or (2,4,1) or (4,1,2) or (4,2,1)): print('bien joué')
Le test n'est pas bon, donc on tombe toujours dans le
else:
Déjà, c'est quoi
de()?
C'est une fonction? On ne la voit pas dans ton code .......
Tu devrais afficher le code complet, ce serait plus compréhensible
Ensuite, tu devrais revoir ton cours sur le langage Python:
On n'écris pas :
if(a == 1 or 2 or 3 or 4):
mais :
if(a==1 or a==2 or a==3 or a==4):
Une astuce supplémentaire:
si de() renvoie un dé
d1 = de() d2 = de() d3 = de() lancer = [d1,d2,d3] lancer.sort() if(lancer == [1,2,4]): print('bien joué): else: print('dommage')
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
18 déc. 2020 à 13:06
18 déc. 2020 à 13:06
Désolé j'avais oublier le 'de()' oui ca rapporte bien à un lance de dé que j'ai fait plus haut . Aussi j'ai essayé d'écrire de la deuxième manière les if mais ca change pas.
Quand je lance le programme étape par étape je peux voir que le problème c'est la fonction affiche_lancer que récupère la fonction affiche résultat est un none donc none n'est pas égale a (1,2,3) ou (1,4,2) .. . . donc m'affiche dommage .
Pour moi c'est parce que la fonction affiche_lance ne renvoie rien dû au manque d'un return
Quand je lance le programme étape par étape je peux voir que le problème c'est la fonction affiche_lancer que récupère la fonction affiche résultat est un none donc none n'est pas égale a (1,2,3) ou (1,4,2) .. . . donc m'affiche dommage .
Pour moi c'est parce que la fonction affiche_lance ne renvoie rien dû au manque d'un return
from random import randint def de(): return randint(1,6) print (de()) def est_un_421(de1,de2,de3): """ Renvoie vrai si et seulement si deux dés forment un 42 Paramètres : - de1 : entier - un lancer de dé six - de2 : entier - un 2eme lancer de dé six - de3 : entier - un 3eme lancer de dé six Valeur de retour : booléen Contraintes : de1, de2 et de3 appartiennent à [1, 6] :Exemples: >>> est_un_421(4, 2, 1) True >>> est_un_421(2, 4, 1) True >>> est_un_421(1, 2, 4) True >>> est_un_421(2, 1, 4) True >>> est_un_421(4, 0, 6) False >>> est_un_421(5, 1, 4) False """ if (de1 == 4 or de1==2 or de1==1) : if (de2==4 or de2==2 or de2==1) and de2 !=de1: if (de3== 4 or de3==2 or de3==1 ) and (de3!=de2) and (de3!=de1): return True else : return False else : return False else : return False print(est_un_421(randint(1,6),randint(1,6),randint(1,6))) ## interaction avec l'utilisateur def identification(): nom = input('nom ? ') return (nom) def presentation(): print('\nBienvenue ! ' ,end='') identification() print(' le but du 421 est de lancé 3 dés et de sortir 4,2, et 1 ') def poursuivre_le_jeu(): """ Renvoie vrai si et seulement si le joueur ecrit oui ou yes Valeur de retour : booléen Contrainte: accepter seulement oui, yes, non, no :Exemples: >>> poursuivre_le_jeu(oui) True >>> poursuivre_le_jeu(non) False >>> poursuivre_le_jeu(frfe) False """ print('Voulez-vous jouer au jeu du 421?') if 'oui' or 'yes' : return True elif 'non' or 'no': return False ##Affichage sur le terminal def affiche_lancer(a,b,c): print('+---+ ' , end='') print('+---+ ' , end='') print('+---+') print('| ' , end='') print(a , end='') print(' | ' , end='') print('| ' , end='') print(b , end='') print(' | ' , end='') print('| ' , end='') print(c , end='') print(' | ') print('+---+ ' , end='') print('+---+ ' , end='') print('+---+') def affiche_resultat(): if affiche_lancer()==((1,2,4) or (1,4,2) or (2,1,4) or (2,4,1) or (4,1,2) or (4,2,1)): print('bien joué') else: #Programme non fonctionnel print('dommage') #j'ai pas reussi à reprendre les mêmes paramètres que la fonction precedente return ##One Main to rule them all def main_421(): presentation() poursuivre_le_jeu() affiche_lancer(de(),de(),de()) affiche_resultat() main_421()
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 18 déc. 2020 à 13:19
Modifié le 18 déc. 2020 à 13:19
En fait, ton code de 421 peut s'écrire très simplement:
Fais-en un copié/collé et essaie, tu verra, ca marche super bien
Ceci dit, il y a une chance sur 36 de sortir un 421 ...
Ca, c'est un test où j'ai gagné:
import random print('\n ***** Jeu de 421 *****\n') nom = input('Bienvenue, quel est ton nom ? : ') input('{} appuie sur entrée pour lancer les dés ...'.format(nom)) des = [n for n in range(1,7)] lancer = random.sample(des, 3) lancer.sort() print('\nRésultat : {}'.format(lancer)) if(lancer == [1,2,4]): print('Gagné !') else: print('Perdu !')
Fais-en un copié/collé et essaie, tu verra, ca marche super bien
Ceci dit, il y a une chance sur 36 de sortir un 421 ...
Ca, c'est un test où j'ai gagné:
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
Modifié le 18 déc. 2020 à 13:35
Modifié le 18 déc. 2020 à 13:35
Enfaite c'est plusieurs exercice que tu peux voir ou j'ai mis les # pour a la fin les assemblés dans main_421().
Donc je peux pas prendre un programmme direct et aussi le format() j'ai pas encore vu à quoi ca servait .
Mais merci pour ton aide .
Donc je peux pas prendre un programmme direct et aussi le format() j'ai pas encore vu à quoi ca servait .
Mais merci pour ton aide .
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 18 déc. 2020 à 13:39
Modifié le 18 déc. 2020 à 13:39
Il suffit de lire le code:
avec cet input, le programme attend que tu appuie sur 'entrée' pour continuer, donc tu appuie et
il continue à la ligne suivante:
puisque grace au tri, 124, 142, 214, 241, 412, 421 deviennent forcément 1,2,4 !
Tu vois le truc ?
input('{} appuie sur entrée pour lancer les dés ...'.format(nom))
avec cet input, le programme attend que tu appuie sur 'entrée' pour continuer, donc tu appuie et
il continue à la ligne suivante:
des = [n for n in range(1,7)] #crée une liste de 6 chiffres lancer = random.sample(des, 3) # crée une liste de 3 chiffre tirés au hasard parmi les 6 lancer.sort() # trie la liste de 3 chiffres en ordre croissant : 4,2,6 devient 2,4,6
print('\nRésultat : {}'.format(lancer))imprime la liste des 3 chiffres
if(lancer == [1,2,4]):: il suffit de tester si la liste est égale à 1,2,4
puisque grace au tri, 124, 142, 214, 241, 412, 421 deviennent forcément 1,2,4 !
Tu vois le truc ?
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
18 déc. 2020 à 14:04
18 déc. 2020 à 14:04
Ok si j'ai compris ton lancé de dé tu l'a affecté à la variable 'lancer' puis après tu regarde si lancer est égale à 1,2,4 .
Mais moi comme c'est des def différente il ne c'est pas a quoi est associer lancer
Du coup j'ai essayé ca mais même problème affiche_lancer le prend comme une fonction et pas le resultat donc affiche toujours dommage ( pour le tri je le met de coté pour l'instant .
Mais moi comme c'est des def différente il ne c'est pas a quoi est associer lancer
def affiche_lancer(a,b,c): print('+---+ ' , end='') ............. print('+---+') lancer = a,b,c return lancer def affiche_resultat(): if (lancer==[1,2,4]): print('bien joué') else: #Programme non fonctionnel print('dommage') #j'ai pas reussi à reprendre les mêmes paramètres que la fonction precedente return
Du coup j'ai essayé ca mais même problème affiche_lancer le prend comme une fonction et pas le resultat donc affiche toujours dommage ( pour le tri je le met de coté pour l'instant .
def affiche_lancer(a,b,c): print('+---+ ' , end='') .............. print('+---+') return a,b,c def affiche_resultat(): lancer = affiche_lancer if (lancer==[1,2,4] or lancer==[1,4,2] or lancer==[2,1,4] or lancer==[2,4,1] or lancer==[4,2,1] or lancer==[4,1,2]): print('bien joué') else: #Programme non fonctionnel print('dommage') #j'ai pas reussi à reprendre les mêmes paramètres que la fonction precedente return
jee pee
Messages postés
40566
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 décembre 2024
9 460
>
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
Modifié le 18 déc. 2020 à 14:26
Modifié le 18 déc. 2020 à 14:26
Bonjour,
affiche_lancer attend des arguments, et pour un return dans le format attendu, il faut le formater
pour debugger du code, il faut rajouter des print, parfois derrière chaque ligne pour voir ce qui se passe
affiche_lancer attend des arguments, et pour un return dans le format attendu, il faut le formater
pour debugger du code, il faut rajouter des print, parfois derrière chaque ligne pour voir ce qui se passe
def affiche_lancer(a,b,c): print('+---+ ' , end='') print('+---+') return [a,b,c] def affiche_resultat(): lancer = affiche_lancer(a,b,c) print(lancer) if (lancer==[1,2,4] or lancer==[1,4,2] or lancer==[2,1,4] or lancer==[2,4,1] or lancer==[4,2,1] or lancer==[4,1,2]): print('bien joué') else: #Programme non fonctionnel print('dommage') #j'ai pas reussi à reprendre les mêmes paramètres que la fonction precedente return
jee pee
Messages postés
40566
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 décembre 2024
9 460
>
jee pee
Messages postés
40566
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 décembre 2024
Modifié le 18 déc. 2020 à 14:24
Modifié le 18 déc. 2020 à 14:24
Et si ce sont des variables globales connues avant, pas besoin de les passer en argument
def affiche_lancer(): print('+---+ ' , end='') print('+---+') return [a,b,c] def affiche_resultat(): lancer = affiche_lancer() print(lancer) if (lancer==[1,2,4] or lancer==[1,4,2] or lancer==[2,1,4] or lancer==[2,4,1] or lancer==[4,2,1] or lancer==[4,1,2]): print('bien joué') else: #Programme non fonctionnel print('dommage') #j'ai pas reussi à reprendre les mêmes paramètres que la fonction precedente return
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
>
jee pee
Messages postés
40566
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 décembre 2024
18 déc. 2020 à 14:22
18 déc. 2020 à 14:22
def affiche_lancer(a,b,c): print('+---+ ' , end='') ............. print('+---+') return [a,b,c] def affiche_resultat(): lancer = affiche_lancer(a,b,c) print(lancer) if (lancer==[1,2,4] or lancer==[1,4,2] or lancer==[2,1,4] or lancer==[2,4,1] or lancer==[4,2,1] or lancer==[4,1,2]): print('bien joué') else: #Programme non fonctionnel print('dommage') #j'ai pas reussi à reprendre les mêmes paramètres que la fonction precedente return ##One Main to rule them all def main_421(): presentation() poursuivre_le_jeu() affiche_lancer(de(),de(),de()) affiche_resultat() main_421()
Enfaite les arguments sont donnés après et quand je met entre parenthèse a b c la console dit que a n'est pas défini (que je trouve normale car j'ai pas mis de parametre au debut de la def
jee pee
Messages postés
40566
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 décembre 2024
9 460
>
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
Modifié le 18 déc. 2020 à 14:28
Modifié le 18 déc. 2020 à 14:28
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 18 déc. 2020 à 17:09
Modifié le 18 déc. 2020 à 17:09
ok, mais tu peux quand même simplifier comme ça:
au lieu de:
tu mets:
au lieu de:
if (lancer==[1,2,4] or lancer==[1,4,2] or lancer==[2,1,4] or lancer==[2,4,1] or lancer==[4,2,1] or lancer==[4,1,2]):
tu mets:
lancer.sort() if (lancer==[1,2,4]): print('Bien joué !')
jee pee
Messages postés
40566
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 décembre 2024
9 460
Modifié le 18 déc. 2020 à 17:11
Modifié le 18 déc. 2020 à 17:11
Que le programme résolve la problématique, c'est bien ;-) C'est la base.
Mais particulièrement dans un cours de programmation, on attend que le code corresponde aussi à la forme demandée.
Par rapport à l'énoncé, les fonctions devraient être indépendantes et toutes lancées dans le main(), pas imbriquées. J'ignore comment cela peut être présenté dans tes cours, mais moi dans le main() j'initialiserais des variables joueur et lancer avec les return des fonctions. Ainsi tu peux les passer en entrée aux autres fonctions appelées
Puis ta ligne "Voulez-vous jouer au jeu du 421?" qui s'affiche sans demander la réponse de l'utilisateur, c'est nul. Et surtout l'énoncé demande d'utiliser le True/False pour lancer les dés, ou pas.
Mais particulièrement dans un cours de programmation, on attend que le code corresponde aussi à la forme demandée.
Par rapport à l'énoncé, les fonctions devraient être indépendantes et toutes lancées dans le main(), pas imbriquées. J'ignore comment cela peut être présenté dans tes cours, mais moi dans le main() j'initialiserais des variables joueur et lancer avec les return des fonctions. Ainsi tu peux les passer en entrée aux autres fonctions appelées
joueur=identification() presentation(joueur) lancer=(de(),de(),de()) afficher_lancer(lancer) afficher_resultat(lancer)
Puis ta ligne "Voulez-vous jouer au jeu du 421?" qui s'affiche sans demander la réponse de l'utilisateur, c'est nul. Et surtout l'énoncé demande d'utiliser le True/False pour lancer les dés, ou pas.
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
18 déc. 2020 à 20:20
18 déc. 2020 à 20:20
C'est juste un exercice que je vais rendre comme ca , et je vais essayer de le refaire sans fonction imbriquées .
Et oui dans mon programme j'ai une fonction qui normalement demande si le joueur veut jouer ou pas mais ne marche pas .
Et oui dans mon programme j'ai une fonction qui normalement demande si le joueur veut jouer ou pas mais ne marche pas .
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
>
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
18 déc. 2020 à 20:32
18 déc. 2020 à 20:32
regarde ma réponse ci dessous: tout marche bien, il y a meme une copie d'écran !
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
18 déc. 2020 à 20:21
18 déc. 2020 à 20:21
hello lou,
Avec tes fonctions, ça peut donner ceci:
Résultat:
Avec tes fonctions, ça peut donner ceci:
# -*- coding:Latin-1 -*- from random import randint def de(): return randint(1,7) def est_un_421(lancer): ''' ''' if(lancer == [1,2,4]): return(True) else: return(False) def identification(): nom = input('Quel est ton nom ? ') return (nom) def presentation(): print('\n ******* Jeu du 421 *****\n') nom = identification() print('\nBienvenue', nom) print('\nle but du jeu est de lancer 3 dés et de sortir 4,2, et 1 ') def poursuivre_le_jeu(): """ Renvoie vrai si et seulement si le joueur ecrit oui ou yes ou o ou y """ rep = input('Voulez-vous jouer au jeu du 421 ? (oui, yes, o, y) : ') if(rep in ['oui', 'yes', 'o', 'y']): return True else: return False def affiche_lancer(a,b,c): print('''\nC'est parti !\nLe lancé :''') print('\n+---+ ' , end='') print('+---+ ' , end='') print('+---+') print('| ' , end='') print(a , end='') print(' | ' , end='') print('| ' , end='') print(b , end='') print(' | ' , end='') print('| ' , end='') print(c , end='') print(' | ') print('+---+ ' , end='') print('+---+ ' , end='') print('+---+') return[a,b,c] def affiche_resultat(): lancer = affiche_lancer(de(),de(),de()) lancer.sort() if (est_un_421(lancer)): print('\nBien joué !!!\n') else: print('\nAh, dommage ...\n') def main_421(): presentation() if(poursuivre_le_jeu()): affiche_resultat() else: print('\nBye !') main_421() input('entrée ...')
Résultat:
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
18 déc. 2020 à 20:48
18 déc. 2020 à 20:48
Merci Phil, j'ai un peu près compris ton programme sauf la fonction poursuivre_le_jeu()
rep est une variable ?
et if (rep in (oui,yes ,o,y)) veut dire que seul c'est caractère sont autorisé pour un return True les autres return False si j'ai bien compris
rep est une variable ?
et if (rep in (oui,yes ,o,y)) veut dire que seul c'est caractère sont autorisé pour un return True les autres return False si j'ai bien compris
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 19 déc. 2020 à 09:29
Modifié le 19 déc. 2020 à 09:29
bonjour Lou,
rep est une variable qui reçoit donc la réponse 'yes' ou 'oui' ou 'o' ou 'y'
si tu tapes 'yes', rep est égal à 'yes'
ensuite
si rep == 'yes' ou rep =='oui', etc ...
on teste si le contenu de rep est dans la liste ['oui', 'yes', 'o', 'y'], donc si il est égal à l'une de
ces 4 chaines de caractères, donc rep ne contient pas forcément 1 seul caractère
Donc si rep égal à l'une des 4, ca renvoie True (je veux jouer ...), sinon c'est que tu as tapé autre
chose comme 'non' ou 'n' par exemple et là ça renvoie False (je ne veux pas jouer ...)
Si tu tapes 'non', ça affiche 'Bye !' et le programme s'arrete
Une version plus courte et plus simple de ta fonction affiche_lancer:
rep est une variable qui reçoit donc la réponse 'yes' ou 'oui' ou 'o' ou 'y'
si tu tapes 'yes', rep est égal à 'yes'
ensuite
if(rep in ['oui', 'yes', 'o', 'y']):c'est une façon plus courte de tester
si rep == 'yes' ou rep =='oui', etc ...
on teste si le contenu de rep est dans la liste ['oui', 'yes', 'o', 'y'], donc si il est égal à l'une de
ces 4 chaines de caractères, donc rep ne contient pas forcément 1 seul caractère
Donc si rep égal à l'une des 4, ca renvoie True (je veux jouer ...), sinon c'est que tu as tapé autre
chose comme 'non' ou 'n' par exemple et là ça renvoie False (je ne veux pas jouer ...)
Si tu tapes 'non', ça affiche 'Bye !' et le programme s'arrete
Une version plus courte et plus simple de ta fonction affiche_lancer:
def affiche_lancer(a,b,c): print('''\nC'est parti !\nLe lancé :''') print('\n+---+ +---+ +---+') print('| '+str(a)+' | | '+str(b)+' | | '+str(c)+' |') print('+---+ +---+ +---+') return[a,b,c]
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
19 déc. 2020 à 14:23
19 déc. 2020 à 14:23
Ok je connaissais pas cette manière d'utiliser 'if' .
Du coup merci pour tout les explications que tu as pu me donner
Du coup merci pour tout les explications que tu as pu me donner
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
19 déc. 2020 à 15:42
19 déc. 2020 à 15:42
ok,
et que penses-tu de ma version simplifiée de afficher_lancer() ?
il faut toujours faire court et simple, et éviter les "usines à gaz" :-)
et que penses-tu de ma version simplifiée de afficher_lancer() ?
il faut toujours faire court et simple, et éviter les "usines à gaz" :-)
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
19 déc. 2020 à 16:20
19 déc. 2020 à 16:20
C'est vrai que j'aurais pu y penser de ressembler les parties hautes ensemble et parties basses ensemble par contre la partie du milieu j'ai pas encore vu, je sais pas a quoi sert le + devant et derrière le 'str'
jee pee
Messages postés
40566
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 décembre 2024
9 460
>
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
Modifié le 19 déc. 2020 à 16:30
Modifié le 19 déc. 2020 à 16:30
Le + est utilisé pour concaténer un chaine littérale avec une variable, on pourrait faire
print('| ',str(a),' ')mais la virgule est remplacée par un blanc. C'est souvent utile sur un input qui n'accepte qu'une seule valeur,
input('Bonjour '+nom+', voulez vous jouer ? ').
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 19 déc. 2020 à 16:54
Modifié le 19 déc. 2020 à 16:54
On peut même faire une version plus "pythonesque" avec les formats,
ca évite la concaténation avec + :
Au fait, un dernier point:
dans ta fonction de(), tu avais écrit
sortait que les faces 1 à 3 du dé
Dans ma version, j'ai mis :
entre 1 et 6 ...
ca évite la concaténation avec + :
print('| {} | | {} | | {} |'.format(a,b,c))
Au fait, un dernier point:
dans ta fonction de(), tu avais écrit
return randint(1,4), donc tu ne
sortait que les faces 1 à 3 du dé
Dans ma version, j'ai mis :
return randint(1,7)pour sortir des chiffres
entre 1 et 6 ...
lou_9631
Messages postés
20
Date d'inscription
jeudi 17 décembre 2020
Statut
Membre
Dernière intervention
19 décembre 2020
19 déc. 2020 à 16:59
19 déc. 2020 à 16:59
Et bien merci pour ce cours de python avancé je m'en tacherai de m'en souvenir.
(Oui pour la fonction de() c'est pour faire des test j'ai corrigé ca.)
(Oui pour la fonction de() c'est pour faire des test j'ai corrigé ca.)
17 déc. 2020 à 15:51
En gros quand je rentre c'est deux def j'aimerai que identification() me permet d'écrire le nom et que presentation() le reprenne sans le réécrire une seconde fois