Ma fonction ne marche pas
Résolu
JFL
-
JFL -
JFL -
Bonjour,
Je suis débutant en python et me familiarise avec les fonctions . Qui pourrait m'aider car ma fonction jeu ne donne aucune réponse et je ne vois pas ce qui cloche.
Merci d'avance.
Je suis débutant en python et me familiarise avec les fonctions . Qui pourrait m'aider car ma fonction jeu ne donne aucune réponse et je ne vois pas ce qui cloche.
Merci d'avance.
import random
s = 2001
random.seed(s)
a = 0
b = 1
c = 2
d = 1
e= 0
coup_o= random.randint(0,2)
coup_j=(a,b,c,d,e)
def jeu ():
score_o = 0
score_j = 0
# calculscore
if coup_j == 0 and coup_o == 2 or coup_j == 1 and coup_o == 0 or coup_j == 2 and coup_o == 1:
score_j = score_j + 1
print ("gagne",score_j)
elif coup_j == 0 and coup_o== 1 or coup_j == 1 and coup_o == 3 or coup_j == 2 and coup_o == 0:
score_ordi = score_ordi + 1
print ("perd",score_ordi + score_j)
elif coup_j == 0 and coup_o == 0 or coup_j == 1 and coup_o == 1 or coup_j == 2 and coup_o == 2:
score_j = score_j
print("egal",score_o + score_j)
return
for i in coup_j:
jeu()
Configuration: Windows / Firefox 95.0
3 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
merci de préciser le langage quand tu utilises les balises de code, comme expliqué: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ton code ne donne aucune réponse parce que tonif
ne couvre pas toutes les combinaisons.
Pour t'en convaincre, ajouteelse: print("autre")avant la ligne où il y a lereturn
: -
Bonjour,
Tu as une boucle for i et tu ne passes pas i à ta fonction, et tu ne l'utilises pas. Tu prends coup_j qui est une liste, pas une valeur unique, ce devrait être i.
Les 2 totaux des scores ne devraient pas être dans la boucle, par contre le coup_o devrait être dans la boucle pour être lancé à chaque fois.
PS : Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect<> ▼
permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature (C, Python, Shell, ...).
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
-
Pour apprendre à savoir ce que fait ton programme, par où il passe, et ce que cotient chaque variable, il faut mettre des print, des fois après chaque ligne, c'est cela faire du debug quand le programme ne fonctionne pas comme on veut.
Ta bouclefor i in coup_j: jeu()est correcte, i va prendre une par une les valeurs de la liste coup_j. Mais alors dans ta fonction, ce n'est pas coup_j qu'il faut utiliser, mais i, qui est le jeu du joueur