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
Bonjour,
j'aimerai savoir si c'est possible de reprendre le résultat de ma def identification et de l'envoyer dans la def presentation .
Exemple:
Dans le terminal y'a ca qui apparait ''Bienvenue <function identification at 0x03DFF348> le but du 421 est de lancé 3 dés est de tomber sur un 1, un 4 et un 2''
def identification():
    print('nom ? ')
    return input()

def presentation():
    print('Bienvenue ' ,end='')
    print(identification ,end='')
    return print(' le but du 421 est de lancé 3 dés est de tomber sur un 1, un 4 et un 2 ')


Si j'ai mal expliquer je suis désolé faites le moi savoir j'essayerai de réexpliquer autrement
MERCI .

12 réponses

jee pee Messages postés 39631 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
17 déc. 2020 à 15:39
bonjour,

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
0
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:51
Merci mais j'avais déjà essayé et ce n'est pas le résultat que j'attends car si je fait ca je devrai écrire deux fois le nom du joueur.
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
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 17 déc. 2020 à 16:12
Bonjour,

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 ')
0
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
Merci pour la rectification dans def identification().
Mais pour presentation le probleme est toujours la
il me demande deux fois le nom du joueur alors que je voudrai qu'il reprend le resultat d'avant .

0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178 > 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
Bien sûr !
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 :

0
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 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024
17 déc. 2020 à 18:51
Ca marche merci beaucoup pour ton aide
0
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
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
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 .
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
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 ?

    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')
0
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
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



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()
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 18 déc. 2020 à 13:19
En fait, ton code de 421 peut s'écrire très simplement:

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é:
0
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
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 .
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 18 déc. 2020 à 13:39
Il suffit de lire le code:

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 ?
0
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
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
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
                  
0
jee pee Messages postés 39631 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234 > 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
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

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
0
jee pee Messages postés 39631 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234 > jee pee Messages postés 39631 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024
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    
0
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 39631 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024
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
0
jee pee Messages postés 39631 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234 > 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
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 18 déc. 2020 à 17:09
ok, mais tu peux quand même simplifier comme ça:

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é !')
0
jee pee Messages postés 39631 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
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
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.

0
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
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 .
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178 > 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
regarde ma réponse ci dessous: tout marche bien, il y a meme une copie d'écran !
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
18 déc. 2020 à 20:21
hello lou,

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:

0
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
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
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
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

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]
0
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
Ok je connaissais pas cette manière d'utiliser 'if' .
Du coup merci pour tout les explications que tu as pu me donner
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
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" :-)
0
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
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'
0
jee pee Messages postés 39631 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234 > 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
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 ? ')
.
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
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 + :

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 ...
0
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
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.)
0