Bonjour,
je dois résoudre un problème: écrire une suite d'astérisque comme cela:
et ainsi de suite* ** *** **** *****
comment dois je faire ? quelle commande utiliser?
C'est sur Python
Merci
Bonjour,
je dois résoudre un problème: écrire une suite d'astérisque comme cela:
et ainsi de suite* ** *** **** *****
comment dois je faire ? quelle commande utiliser?
C'est sur Python
Merci
si TU dois résoudre un problème, fais-le, on te dira si c'est bon ou pas, ce que tu peux améliorer ou non
pour ce qui est de "comment faire", il s'agit d'une simple boucle, à chaque tour on ajoute une astérisque au message à afficher, et on affiche le message.quelle commande utiliser? C'est sur Python
J'ai essayé de chercher, voilà ce que j'ai obtenu :
Est ce que c'est bon ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 def etoile(i): i=0 while i<=6: i=i+1 print("*"**i)
C'est presque bon, quelques remarques:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 def etoile(i): i=0 while i<=6: i=i+1 print("*"**i)
- i représente le nombre d'étoiles maxi sur une ligne, i représente en général une variable représentant un index, je mettrais stars (étoiles) par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 def etoile(stars): # suite du code
- Ta ligne où tu écris i=0, écrase le paramètre attendu dans ta fonction, le paramètre de la fonction devient donc inutile
- i = 0 est censé être un compteur, on pourrait rendre explicite le code en donnant comme nom de variable cpt = 0 pour un compteur
- En mettant un nombre magique telle que la valeur 6 (valeur max d'étoiles sur une ligne), tu supprimes l'utilité de ton paramètre de fonction
La solution est :
Ensuite pour ton affichage, tu fais non pas une multiplication mais une puissance, il faut enlever un opérateur *.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 while cpt <= stars: # tant que le compteur n'arrive pas au nombre d'étoiles maximum # suite du code
--------------------------------------------------------------
Remarque pratique,
Initialiser cpt à 1, permet d'afficher directement après la boucle le premier calcul
Exécuter une fonction, c'est l'appeler, dans le code je ne le vois pas, je ne sais pas si tu sais le faire... exemple,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 while cpt <= stars: print("*" * cpt)
Code : Sélectionner tout - Visualiser dans une fenêtre à part etoile(5) # Tout simplement
Tout d'abord, merci beaucoup pour l'aide que vous m'avez apportée. J'ai refait le programme. Voici ce que j'ai obtenu en réutilisant ce que vous m'avez dit:
Petites questions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 def etoile(stars): cpt=0 #j'ai essayé d'appliquer cpt=1 : la première étoile, qui est toute seule n'apparait pas c'est donc pour cela que j'ai mis cpt=0. AVec cpt=0, la première étoile seule apparaît while cpt<stars: cpt=cpt+1 print("*" * cpt) #La commande pour une puissance, c'est bien ** pourtant ? etoile(7) #En appliquant le programme ci-dessus, la suite des astérisques apparaît
il vaut mieux ne pas mettre de chiffre après le while ? (6 à la place du stars) ex : while cpt<stars
Voilà le code très peu modifier avec cpt = 1
Pour ce commentaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 def etoile(stars): cpt = 1 while cpt <= stars: print("*" * cpt) cpt = cpt+1 etoile(7) #En appliquant le programme ci-dessus, la suite des astérisques apparaît
Oui, mais je vois pas le rapport avec la solution à ton problème, il faut bien multiplier le nombre d'étoile, pas mettre à la puissance de. ???#La commande pour une puissance, c'est bien ** pourtant ?
Je l'ai expliqué précédemment, 6 est un nombre magique, il apparaît par magie sans être documenté comme un cheveu sur la soupe, ce n'est pas expressif de ce que tu souhaites faire pour résoudre ton problème...il vaut mieux ne pas mettre de chiffre après le while ? (6 à la place du stars) ex : while cpt<stars
D'accord, je viens de comprendre tout le processus. Merci !
Partager