Écrire une fonction prenant en argument un nombre entier n impair et affichant un triangle ayant une base de n étoiles (*). Réaliser ensuite un appel à la fonction ou c'est l'utilisateur qui choisit l'entier n.Je galère vraiment quelqu'un sait par ou si prendre j'arrive pas a savoir comment faire fonctionner ce truc.
n =int(input("Entrer un nombre n impair :"))
def triangle(n):
while n % 2 == 0:
print ("Votre nombre n'est pas impair.")
n = int(input("Entrer un nombre n impair :"))
else:
return ("*" * n)
print(triangle(n))
Déjà ta fonction là elle va te renvoyer qu'une ligne de n étoiles. Certes c'est la base du triangle mais faut afficher le reste aussi ![]()
Du coup il te manque une boucle dans ta fonction ![]()
Après il y a aussi plusieurs manières d'afficher un triangle avec des étoiles, tu peux être plus précis sur la manière dont tu dois afficher le triangle ou c'est libre ?
Pour n = 7, (e = espace)
hauteur = 4
* (3e, 1*)
*** (2e, 3*)
***** (1e, 5*)
******* (0e, 7*)
Prends toujours un cas et raisonne avec
La solution en PHP :
https://github.com/kMeillet/pro-login-2016/blob/master/triangle/triangle.php
Salut, je suis débutant aussi et profiter de ton exercice pour m'exercer un peu ![]()
Voici ce que j'ai fais si ça peut aider :
# La fonction
def triangle(n,i=1):
if n % 2 == 0:
print ("Votre nombre n'est pas impair.")
else:
while i<=n:
ligne = "*" * i
print(ligne.center(n))
i+=2
# La saisie infinie
while 1:
n = int(input("Taille de la base du triangle : "))
triangle(n)
print("\n\n\n")
Le 28 novembre 2015 à 18:23:03 Athuro83 a écrit :
Déjà ta fonction là elle va te renvoyer qu'une ligne de n étoiles. Certes c'est la base du triangle mais faut afficher le reste aussi
Du coup il te manque une boucle dans ta fonctionAprès il y a aussi plusieurs manières d'afficher un triangle avec des étoiles, tu peux être plus précis sur la manière dont tu dois afficher le triangle ou c'est libre ?
Il faut utiliser une fonction.
Le 28 novembre 2015 à 21:17:44 Chastifol a écrit :
Salut, je suis débutant aussi et profiter de ton exercice pour m'exercer un peuVoici ce que j'ai fais si ça peut aider :
# La fonction def triangle(n,i=1): if n % 2 == 0: print ("Votre nombre n'est pas impair.") else: while i<=n: ligne = "*" * i print(ligne.center(n)) i+=2 # La saisie infinie while 1: n = int(input("Taille de la base du triangle : ")) triangle(n) print("\n\n\n")
C'est quoi saisie infinie ?
Le 28 novembre 2015 à 20:28:29 Grabugelelion a écrit :
La solution en PHP :https://github.com/kMeillet/pro-login-2016/blob/master/triangle/triangle.php
J'y comprends rien
Par saisie infinie je voulais dire, que tu peux saisir plusieurs taille à la suite et ainsi tester les résultat successivement sans fermer l’interpréteur et le reouvrir
Bon j'ai compris j'ai modifié le code.
def triangle(n, i = 1):
if n % 2 == 0:
print ("Votre nombre n'est pas impair.")
else:
while i <= n:
ligne = "*" * i
print(ligne.center(n))
i += 2
for a in range (1):
n =int(input("Entrer un nombre entier n impair :"))
triangle(n)
Cependant il ne doit pas avoir d'étoile au milieu quand on monte mais seulement une sur le côté...
Le 29 novembre 2015 à 15:53:35 _Pytchoun a écrit :
Cependant il ne doit pas avoir d'étoile au milieu quand on monte mais seulement une sur le côté...
Tu pourrais faire un exemple concret ? Je veux dire, en utilisant la balise du site. Je vois pas ce que tu veux dire. :(
Genre faudrait avoir ça :
<code> *
***
*****
*******
*********
Mais qu'est-ce que tu entends par "pas avoir d'étoile au milieu" ? La ligne du milieu, genre ici celle de 5 étoiles ?
*
* *
* *
* *
*********Je sais pas si c'est clair ? On vide les étoiles du centre.
def triangle2(n):
i=1
if n%2==0:
print("Votre nombre n'est pas impair.")
else:
print("*".center(2*n))
while i<(2*n)-4:
espace=" "*i
ligne = "*" + espace + "*"
print(ligne.center(2*n))
i+=2
derniere="* "*n
print(derniere.center(n))
while 1:
n = int(input("Taille de la base du triangle : "))
triangle2(n)
print("\n\n\n")
Regarde celui là ![]()
Avec quelques commentaires :
def triangle2(n):
i=1
if n%2==0:
print("Votre nombre n'est pas impair.")
else:
print("*".center(2*n)) # Le sommet du triangle (1 étoile)
while i<(2*n)-4:
espace=" "*i # Variable qui contient l'espace entre chaque # étoile des lignes du triangle
ligne = "*" + espace + "*" # Lignes du triangle
print(ligne.center(2*n))
i+=2
base="* "*n # La base du triangle
print(base.center(n))
while 1:
n = int(input("Taille de la base du triangle : "))
triangle2(n)
print("\n\n\n")
print("\n\n\n")C'est pas vraiment utile non ?
Sinon c'est fonctionnel d'après ce que je vois non ?
Par contre impossible d'enlever l'espace pour la base du triangle ?
pourquoi tu multiple par 2 * n ?
Le 29 novembre 2015 à 19:06:24 _Pytchoun a écrit :
print("\n\n\n")C'est pas vraiment utile non ?
Oui ce n'est pas utile, c'est juste pour la lisibilité
Sinon c'est fonctionnel d'après ce que je vois non ?
Normalement ça marche chez moi
Par contre impossible d'enlever l'espace pour la base du triangle ?
Pourquoi enlever la base, le triangle ne sera pas fermé ![]()
pourquoi tu multiple par 2 * n ?
Ici chaque étoile de la base du triangle et séparée de sa voisine par un espace "* * * * * " ou lieu de " ***** " donc le nombre d'espace augmente du double
Je demande pas à enlever la base, je demande a ce qu'il n y est pas d'espace entre chaque * sur la base. ![]()
Ici chaque étoile de la base du triangle et séparée de sa voisine par un espace "* * * * * " ou lieu de " ***** " donc le nombre d'espace augmente du double
Ce topic pourrait t'aider
https://www.jeuxvideo.com/forums/42-47-42036235-1-0-1-0-c-hello-world-ne-marche-pas.htm
La partie inférieur du X et t'ajoutes juste la base
Le 29 novembre 2015 à 20:21:11 Schiffer a écrit :
Ce topic pourrait t'aider
https://www.jeuxvideo.com/forums/42-47-42036235-1-0-1-0-c-hello-world-ne-marche-pas.htm
La partie inférieur du X et t'ajoutes juste la base
Oula je vois pas en quoi ca aide.