Fonction "choice" [Résolu]

lecorse 93 Messages postés samedi 11 mars 2006Date d'inscription 4 décembre 2017 Dernière intervention - 2 déc. 2017 à 18:14 - Dernière réponse : yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention
- 4 déc. 2017 à 20:42
Bonjour à tous,
J’aimerai qu’on m’explique qu’elles sont les erreurs que j’ai commises dans ce petit programme que je teste (je débute)
1) ne donne pas les points
2) cartes2 pas def.



 from random import choice
t = 0
def info():
    """ Informations """
    print("Touche q pour quitter")
    print("Touche Enter pour continuer")
#liste des 52 cartes à compléter
liste = ['as de pique', ' as de coeur', 'as de carreau',' as de trêfle',
         '2 de pique','2 de coeur', '2 de carreau', '2 de trêfle']

(choice(liste)) # choix de 2 cartes

print(choice(liste)) # donne la carte qui a été choisie
print(choice(liste)) # donne une deuxième carte qui a été choisie


# points attribués aux cartes
cartes1 = ['as de pique','as de coeur','as de carreau', 'as de trêfle']# 11
cartes2 = ['2 de pique','2 de coeur', '2 de carreau', '2 de trêfle']# 2

if (choice(liste)) in cartes1: #si la carte choisie se trouve dans les cartes 1 = 11 points
    t== t+11  # 0 + 11 = 11
    print(t)
if (choice(liste)) in carte2: # si la carte choisie se trouve dans les cartes 2 = 2 points
    t=t+2
    print(t)



#début du programme
info()
while True:
    choix = input()
    if choix == 'q':
        break
    print(choice(liste))

#résultat    
# as de pique
# as de trêfle   
#Traceback (most recent call last):
# File "C:\Users\Alain-3\Desktop\Introd au langage python\MODELE QUITTER_CONTINUER.py", line 20, in <module>
#   if (choice(liste)) in carte2: # si la carte choisie se trouve dans les cartes 2 = 2 points
#NameError: name 'carte2' is not defined
Afficher la suite 
93Messages postés samedi 11 mars 2006Date d'inscription 4 décembre 2017 Dernière intervention

10 réponses

Répondre au sujet
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 2 déc. 2017 à 20:58
0
Utile
bonsoir, carte2 ou cartes2, que choisis-tu?
Commenter la réponse de yg_be
lecorse 93 Messages postés samedi 11 mars 2006Date d'inscription 4 décembre 2017 Dernière intervention - 3 déc. 2017 à 15:37
0
Utile
3
Bonjour
OK c'est cartes2 Merci

2t
tu as 2 points
total des points = 2
Touche q pour quitter
enter pour continuer
as de t

Pourquoi il me donne une deuxième carte as de t ?
La fonction enter ne continue pas le programme.
En fait je veux arriver à une première donne de 2 cartes et en connaître le total des points(jeu de carte 21)
Ensuite choix ou pas d'une carte qui peut éventuellement éliminer le joueur si >21
Naturellement je vais jouer avec 52 cartes
Encore merci pour ton aide
J'ai 77 ans je sais que je ne vais pas faire des miracles en programmation mais je trouve ce passe temps très intéressant.
J'étudie le langage Python avec le tutoriel "Introduction au langage Python"
qui me semble assez clair
Bonne fin de journée et encore merci pour ton aide car très rare les gens qui ont encore la patience de s'intéresser aux vieux.
georges97 3954 Messages postés lundi 31 janvier 2011Date d'inscription 11 décembre 2017 Dernière intervention - 3 déc. 2017 à 15:58
Bonjour Lecorse,

J'ai dix ans de moins que vous, espère atteindre votre âge et me passionne pour la programmation (python, scratch, arduino, robotique).

J'ai l'habitude de dire : "les vieux sont tous d'anciens jeunes mais ces derniers ne sont pas certains de le devenir". Non encore déposé à la SACEM.

Persévérez et prenez du plaisir. Nul doute que les abonnés de CCM vous viendront en aide car tel est leur bon plaisir.

Cordialement
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 3 déc. 2017 à 16:39
je t'ai aidé sans connaitre ton âge, tu ne peux donc pas en déduire que j'ai "la patience de m'intéresser aux vieux". :-)
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 3 déc. 2017 à 16:46
j'ai l'impression que tu nous poses une question ("Pourquoi il me donne une deuxième carte as de t ?") à propos du comportement d'un programme, sans nous montrer le programme. je me trompe?
Commenter la réponse de lecorse
lecorse 93 Messages postés samedi 11 mars 2006Date d'inscription 4 décembre 2017 Dernière intervention - 4 déc. 2017 à 11:38
0
Utile
2
Bonjour

Voila l'ébauche du programme :
from random import choice

t1 = 0 # total des points gagnés = compteur voir fichier:fonction compteur
#t2 = 0
def info():
""" Informations """
print("Touche q pour quitter")
print("enter pour continuer")
#print(choice(liste))


liste =['2 pique','2 coeur','2 carreau','2 trêfle','3 pique','3 coeur ','3 carreaud','3 trêfle',
'4 pique','4 coeur','4 carreau','4 trêfle','5 pique','5 coeur','5 carreau','5 trêfle',
'6 pique','6 coeur','6 carreau','6 tr^fle','7 pique','7 coeur','7 carreau','7 trêfle',
'8 pique','8 coeur','8 carreau','8 trêfle','9 pique','9 coeur','9 carreau','9 trêfle',
'10 pique','10 coeur','10 carreau','10 trêfle']
# ,'Valet pique',
# 'Valet coeur','Valet carreau','Valet trêfle','Dame pique','Dame coeur','Dame coeur','Dame trêfle',
# 'Roi pique','Roi coeur','Roi carreau','Roi trêfle','As pique','As coeur','As carreau','As trêfle']
print(choice (liste))

carte1 = ['as p', 'as coeur', 'as carreau', 'as trêfle',]
carte2 = ['2 pique','2 coeur','2 carreau','2 trêfle']
carte3 = ['3 pique','3 coeur','3 carreau','3 trêfle']
carte4 = ['4 pique','4 coeur','4 carreau','4 trêfle']
carte5 = ['5 pique','5 coeur','5 carreau','5 trêfle']
carte6 = ['6 pique','6 coeur','6 carreau','6 trêfle']
carte7 = ['7 pique', '7coeur','7 carreau','7 trêfle']
carte8 = ['8 pique', '8coeur','8 carreau','8 trêfle']
carte9 = ['9 pique', '9 coeur','9carreau','9 trêfle']
carte10 = ['10 pique', '10coeur','10 carreau','810trêfle']
#carte11 = ['vallet pique', 'valet coeur','valet carreau','valet trêfle']
#carte12 = ['dame pique', 'dame coeur','dame carreau','dame trêfle']
#carte13 = ['roi pique', 'roi coeur','roi carreau','roitrêfle']

if (choice (liste)) in carte1:
print('tu as 11 points')
t1 = t1 + 11
print ('total des points = ', t1)

if (choice (liste)) in carte2:
print('tu as 2 points')
t1 = t1 + 2
print ('total des points = ', t1)

if (choice (liste)) in carte3:
print('tu as 3 points')
t1 = t1 + 3
print ('total des points = ', t1)

if (choice (liste)) in carte4:
print('tu as 4 points')
t1 = t1 + 4
print ('total des points = ', t1)

if (choice (liste)) in carte5:
print('tu as 5 points')
t1 = t1 + 5
print ('total des points = ', t1)

if (choice (liste)) in carte6:
print('tu as 6 points')
t1 = t1 + 6
print ('total des points = ', t1)

if (choice (liste)) in carte7:
print('tu as 7 points')
t1 = t1 + 7
print ('total des points = ', t1)
if (choice (liste)) in carte8:
print('tu as 8 points')
t1 = t1 + 8
print ('total des points = ', t1)
if (choice (liste)) in carte9:
print('tu as 9 points')
t1 = t1 + 9
print ('total des points = ', t1)

if (choice (liste)) in carte10:
print('tu as 10 points')
t1 = t1 + 10
print ('total des points = ', t1)


#résultat
#6 carreau = 6 points et pas neuf
#tu as 9 points
#total des points = 9
#Touche q pour quitter
#enter pour continuer !!!! ne continue pas donc ne
#conserve pas les points antérieurs



#début du programme
info()
while True:
choix = input()
if choix == 'q' :
break
print(choice(liste))

Merci à tous
Bonne journée
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 4 déc. 2017 à 16:02
il faudrait que tu montres le programme correctement, en utilisant les possibilités offertes par le forum. comme tu le partages, ton code est illisible.
je suis étonné par tous ces appels
choice (liste)
: à chaque fois, cela tire une carte au hasard, et cela n'est probablement pas ce que tu souhaites.
je suggère plutôt:
cartetiree= choice(liste)
if (cartetiree) in carte1:
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention > yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 4 déc. 2017 à 19:21
ou plutôt:
from random import choice 


t1 = 0 # total des points gagnés = compteur voir fichier:fonction compteur 
#t2 = 0 
def info(): 
    """ Informations """ 
    print("Touche q pour quitter") 
    print("enter pour continuer") 
#print(choice(liste)) 


liste =['2 pique','2 coeur','2 carreau','2 trefle','3 pique','3 coeur','3 carreau','3 trefle', 
'4 pique','4 coeur','4 carreau','4 trefle','5 pique','5 coeur','5 carreau','5 trefle', 
'6 pique','6 coeur','6 carreau','6 trefle','7 pique','7 coeur','7 carreau','7 trefle', 
'8 pique','8 coeur','8 carreau','8 trefle','9 pique','9 coeur','9 carreau','9 trefle', 
'10 pique','10 coeur','10 carreau','10 trefle'] 
# ,'Valet pique', 
# 'Valet coeur','Valet carreau','Valet trêfle','Dame pique','Dame coeur','Dame coeur','Dame trêfle', 
# 'Roi pique','Roi coeur','Roi carreau','Roi trêfle','As pique','As coeur','As carreau','As trêfle'] 

carte1 = ['as pique', 'as coeur', 'as carreau', 'as trefle',] 
carte2 = ['2 pique','2 coeur','2 carreau','2 trefle'] 
carte3 = ['3 pique','3 coeur','3 carreau','3 trefle'] 
carte4 = ['4 pique','4 coeur','4 carreau','4 trefle'] 
carte5 = ['5 pique','5 coeur','5 carreau','5 trefle'] 
carte6 = ['6 pique','6 coeur','6 carreau','6 trefle'] 
carte7 = ['7 pique', '7 coeur','7 carreau','7 trefle'] 
carte8 = ['8 pique', '8 coeur','8 carreau','8 trefle'] 
carte9 = ['9 pique', '9 coeur','9carreau','9 trefle'] 
carte10 = ['10 pique', '10 coeur','10 carreau','10 trefle'] 
#carte11 = ['vallet pique', 'valet coeur','valet carreau','valet trêfle'] 
#carte12 = ['dame pique', 'dame coeur','dame carreau','dame trêfle'] 
#carte13 = ['roi pique', 'roi coeur','roi carreau','roitrêfle'] 
info() 
while True: 
    ct=choice (liste)
    print(ct) 



    if (ct) in carte1: 
        print('tu as 11 points') 
        t1 = t1 + 11 
        print ('total des points = ', t1) 

    if (ct) in carte2: 
        print('tu as 2 points') 
        t1 = t1 + 2 
        print ('total des points = ', t1) 

    if (ct) in carte3: 
        print('tu as 3 points') 
        t1 = t1 + 3 
        print ('total des points = ', t1) 

    if (ct) in carte4: 
        print('tu as 4 points') 
        t1 = t1 + 4 
        print ('total des points = ', t1) 

    if (ct) in carte5: 
        print('tu as 5 points') 
        t1 = t1 + 5 
        print ('total des points = ', t1) 

    if (ct) in carte6: 
        print('tu as 6 points') 
        t1 = t1 + 6 
        print ('total des points = ', t1) 

    if (ct) in carte7: 
        print('tu as 7 points') 
        t1 = t1 + 7 
        print ('total des points = ', t1) 
    if (ct) in carte8: 
        print('tu as 8 points') 
        t1 = t1 + 8 
        print ('total des points = ', t1) 
    if (ct) in carte9: 
        print('tu as 9 points') 
        t1 = t1 + 9 
        print ('total des points = ', t1) 

    if (ct) in carte10: 
        print('tu as 10 points') 
        t1 = t1 + 10 
        print ('total des points = ', t1) 


#résultat 
#6 carreau = 6 points et pas neuf 
#tu as 9 points 
#total des points = 9 
#Touche q pour quitter 
#enter pour continuer !!!! ne continue pas donc ne 
#conserve pas les points antérieurs 



#début du programme 

    choix = input("?") 
    if choix == 'q' : 
        break 
     
Commenter la réponse de lecorse
lecorse 93 Messages postés samedi 11 mars 2006Date d'inscription 4 décembre 2017 Dernière intervention - 4 déc. 2017 à 20:31
0
Utile
1
Bonsoir

Ok C’est ce que je voulais.
Je suis content car j’étais sur la bonne piste et ça m’encourage à poursuivre.
J’ai vu comment tu as procédé avec while True que je n’avais pas encore bien étudié.
Maintenant je vais peaufiner la fin du programme.
Un grand merci
C’est avec des gens sympas comme toi que des débutants peuvent avancer.
Je regrette de ne pas avoir commencé plus vite au début de ma retraire mais j’avais programmé (déjà !) autre chose qui ne s’est pas réalisé malheureusement.

Encore merci

Bonne soirée.
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 4 déc. 2017 à 20:42
content d'avoir pu t'aider.
peux-tu marquer le sujet comme résolu (en utilisant le lien en-dessous du titre)?
bonne continuation!
Commenter la réponse de lecorse