Programme python simple

a marqué ce sujet comme résolu.

Bonjour je débute python et voici un code :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
def game():
    print("Welcome, please find the number between 1 and 10, the answer is +1 each tour ")
    print('what is your number ? ')
    number = 5
    answer = input("number ? : ")
    answer = int(answer)

    while answer > number:
     print('less')
     number += 1
     break
    while answer < number:
     print('more')
     number += 1
     break
    else:
     print("cool")

`

En gros, mon problème c’est que je n’arrive pas à ajouter ’1’ au 5(number = 5)(ligne 4) à chaque fois que je tape un nombre

+0 -0

Salut (et bienvenue) !

Avant toute chose, je pense que tu devrais relire le tutoriel Python que tu utilises pour apprendre. Ici, tu utilises tes boucles while comme des conditions : si la condition est vrai, alors on affiche less (more pour l’autre) et on incrémente number, et une fois la première itération (la première fois qu’on fait un tour de boucle) fini, on arrête (avec break).
Ici, tu devrais avoir une boucle qui tourne tant que le nombre n’est pas trouvé, et qui contient des conditions pour afficher plus, ou moins, en fonction de l’expression : answer > number (et pour faire le second cas, utilise un second if). Aussi, vu que tu dois demander le nombre à chaque fois, cette requête doit être dans la boucle.

Bonjour,

Tu n’as d’ailleurs aucune boucle dans ton code actuel (tes while font juste office de blocs conditionnels puisque tu n’as jamais plus d’une itération).

Je pense que tu devrais commencer par mettre au clair et exprimer ce que tu cherches à faire. Le code sera ensuite plus facile à concevoir.

Salut,

Tu devrais comme l’a dit @entwanne, « commencer par mettre au clair et exprimer ce que tu cherches à faire ». Fais ça, avec des mots en français et donne-nous le résultat. Puis, tu peux soit écrire le code en Python directement, soit l’écrire en français. Par exemple, pour un programme vérifiant qu’un nombre est pair, on pourrait écrire ça.

1
2
3
4
5
6
Demander un nombre à l’utilisateur
Si ce nombre est pair (le reste de la division euclidienne de ce nombre par 2) Alors
    Afficher « Ce nombre est pair. »
Sinon
    Afficher « Ce nombre est impair. »
Fin Si

Et en Python.

1
2
3
4
5
nombre = int(input("Entrez un nombre : "))
if nombre % 2 == 0:
    print("Ce nombre est pair.")
else:
    print("Ce nombre est impair.")
+2 -0

Je devrais le faire comment alors ? Remplacer les while par des if ?

thedarimonds11

Quel est l’intérêt des while actuels dans ton code ? Ne remplissent-ils pas juste le rôle du if ? Le comportement de ton code est aussi assez étrange, puisque tu vas vraisemblablement rentrer dans les deux « boucles ».

effectivement, les while ne servent a rien ici

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
def game():
    print("Welcome, please find the number between 1 and 10, the answer is +1 each tour ")
    print('what is your number ? ')
    number = 5
    answer = input("number ? : ")
    answer = int(answer)

    if answer > number:
     print('less than', answer)
     number += 1
    elif answer < number:
     print('more than', answer)
     number += 1
    else:
     print("cool")

J’ai corrigé mais je n’arrive toujours pas à ajouter ’1’ à chaque fois que je mes le mauvais nombre

+0 -0

C’est quoi le but de ton programme ? Ton jeu, c’est faire trouver un nombre à l’utilisateur donc lui demander un nombre tant qu’il n’a pas trouvé ?

+0 -0

Dans ce cas, tu as bien besoin d’une boucle.

1
2
3
4
5
6
nombre = 5
réponse = 0
Tant que l’utilisateur n’a pas trouvé le nombre
    réponse = Demander à l’utilisateur un nombre
    Ici, modifier ou pas nombre comme il faut
Fin Tant que

C’est en gros ce que tu dois faire en mettant ce qu’il faut à la ligne 5.

+3 -0

Avec quels mots-clés fais-tu une boucle ? Avec lequel fais-tu une boucle « tant que » ?

+0 -0

Donc ici, tu dois utilise le mot clé while avec la condition d’arrêt qui va bien. Mais le plus important ici est de compléter la ligne 5 du pseudo-code que j’ai posté plus haut. Tu y mettrais quoi ?

+0 -0

Oui, tu mets number += 1. Avec ça, tu devrais être capable de nous proposer une version du code.

+0 -0

J’ai mis number += 1 (en haut) mais quand je l’execute le nombre(5) n’est pas intencié, pas d’ajout de ’1’

Tu voulais dire « incrémenté », non ? Montre-nous ton code.

+0 -0
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
def game():
    print("Welcome, please find the number between 1 and 10, the answer is +1 each tour ")
    print('what is your number ? ')
    number = 5
    answer = input("number ? : ")
    answer = int(answer)

    if answer > number:
     print('less than', answer)
     number += 1
    elif answer < number:
     print('more than', answer)
     number += 1
    else:
     print("cool")

Ah oui je voulais dire incrémenté

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte