Problème boucle if [Résolu/Fermé]

Signaler
-
 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

Messages postés
9018
Date d'inscription
dimanche 22 août 2010
Statut
Contributeur
Dernière intervention
23 octobre 2020
2 422
Salut, ton code source ne peut pas être étudié car tu n'as pas utilisé la balise <code> pour conserver les indentations.
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.
Messages postés
14785
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 avril 2021
284
Coloration syntaxique ajoutée.

Et pour ton information, IF n'est pas une boucle, mais une structure de contrôle conditionnelle.
Messages postés
168
Date d'inscription
mardi 26 novembre 2013
Statut
Membre
Dernière intervention
11 février 2019
1
Salut,

Dans ton code tu fais

nrbRelance = input("rrr")

Que renvoie la méthode input ?
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
937
#!/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.
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