Problème boucle if

Résolu/Fermé
tygfe - Modifié par NHenry le 7/11/2016 à 20:09
 Tyfge - 8 nov. 2016 à 09:47
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 dimanche 22 août 2010 Statut Contributeur Dernière intervention 23 octobre 2020 2 482
7 nov. 2016 à 17:58
Salut, ton code source ne peut pas être étudié car tu n'as pas utilisé la balise <code> pour conserver les indentations.
0
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 15163 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 1 novembre 2024 345
7 nov. 2016 à 20:10
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 mardi 26 novembre 2013 Statut Membre Dernière intervention 11 février 2019
7 nov. 2016 à 23:13
Salut,

Dans ton code tu fais

nrbRelance = input("rrr")

Que renvoie la méthode input ?
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
8 nov. 2016 à 09:16
#!/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
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