Problème boucle if

Résolu
tygfe -  
 Tyfge -
Bonjour, je n'arrive pas a comprendre d'où vient l'erreur. Je n'arrive pas à rentrer dans la boucle if même si 'nrbRelance' est égale à 2 ou 3.
Avez vous des idées.
Si je n'ai pas était clair dites le moi :)



from random import*
def hamza(nom,de):
    print ("Sur le ",nom," dé, le numéro sur la face du dessus est le :",de)

def jean(points):
    de_deux = 0
    de_trois = 0
    de_un = 1 + int(6*random())
    hamza('premier',de_un) 
    if nrbRelance == 2:
        de_deux = 1 + int(6*random())
        hamza('deuxième',de_deux) 
    elif nrbRelance == 3:
        de_deux = 1 + int(6*random())
        de_trois = 1 + int(6*random())
        hamza('deuxième',de_deux) 
        hamza('troisième',de_trois) 
    points = points + de_un + de_deux + de_trois
    print ("votre score est maintenant de",points,"points")
    
nrbRelance = input("rrr")
points = 10
jean(points)


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

3 réponses

dsy73 Messages postés 9252 Date d'inscription   Statut Contributeur Dernière intervention   2 485
 
Salut, ton code source ne peut pas être étudié car tu n'as pas utilisé la balise <code> pour conserver les indentations.
0
tygfe
 
Désolé, je suis un gros débutant mais je crois que tu parles de HTML et je suis en python.
Si je me trompe, peux tu prendre un peu de ton pour m'expliquer ça svp.
0
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Coloration syntaxique ajoutée.

Et pour ton information, IF n'est pas une boucle, mais une structure de contrôle conditionnelle.
0
mikis69 Messages postés 168 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,

Dans ton code tu fais

nrbRelance = input("rrr")

Que renvoie la méthode input ?
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
#!/usr/bin/python
# -*- coding: utf-8 -*-
from random import *
def hamza(nom,de):
    print ( ("Sur le %s dé, le numéro sur la face du dessus est le : %d" %( nom, de ) ))

def jean( nbrRelance ):
    points = 0
    de_deux = 0
    de_trois = 0
    
    de_un = randint(1, 6)
    hamza('premier',de_un) 
    if nbrRelance == 2 :
        de_deux = randint(1, 6)
        hamza('deuxième',de_deux) 
    elif nbrRelance == 3 :
        de_deux = randint(1, 6)
        hamza('deuxième',de_deux) 
        de_trois = randint(1, 6)
        hamza('troisième',de_trois) 

    points = points + de_un + de_deux + de_trois
    print("votre score est maintenant de %d\n" % points)
        
nbrRelance = int(input("rrr: "))
jean( nbrRelance )
fonctionnera mieux.
Il faudra améliorer. Entre aure vérifier que l'input est bien un entier (avec except ou autre test)
Utiliser une liste de résultats et une boucle au lieu de variables distinctes.
On te laisse cela comme exercice.
Les noms de tes variable "nom" et "de" ne sont pas pertinents.
0
Tyfge
 
Merci de tes réponses.
Enfaite le problème venait juste des guillemets qu il fallait mettrent autour de 2 et 3 dans les conditions de ma structure de contrôle If
Merci
0