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
Version imprimable
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.Citation:
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:
1
2
3
4
5 def etoile(i): i=0 while i<=6: i=i+1 print("*"**i)
C'est presque bon, quelques remarques:Citation:
Code:
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:
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:
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:
1
2 while cpt <= stars: print("*" * cpt)
Code: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:
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 commentaireCode:
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. ???Citation:
#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...Citation:
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 !