CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Python : Triangles étoilés

_Pytchoun
_Pytchoun
Niveau 67
28 novembre 2015 à 14:17:56
É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.

_Pytchoun
_Pytchoun
Niveau 67
28 novembre 2015 à 16:07:09
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))
Athuro83
Athuro83
Niveau 10
28 novembre 2015 à 18:23:03

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 :noel:
Du coup il te manque une boucle dans ta fonction :oui:

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 ?

Schiffer
Schiffer
Niveau 10
28 novembre 2015 à 20:01:10
Pour n = 7, (e = espace)
hauteur = 4
   * (3e, 1*)
  *** (2e, 3*)
 ***** (1e, 5*)
******* (0e, 7*)

Prends toujours un cas et raisonne avec

Grabugelelion
Grabugelelion
Niveau 5
28 novembre 2015 à 20:28:29

La solution en PHP :

https://github.com/kMeillet/pro-login-2016/blob/master/triangle/triangle.php

Chastifol
Chastifol
Niveau 10
28 novembre 2015 à 21:17:44

Salut, je suis débutant aussi et profiter de ton exercice pour m'exercer un peu :hap:

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")
_Pytchoun
_Pytchoun
Niveau 67
28 novembre 2015 à 21:22:51

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 :noel:
Du coup il te manque une boucle dans ta fonction :oui:

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 ?

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 peu :hap:

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")

C'est quoi saisie infinie ?

_Pytchoun
_Pytchoun
Niveau 67
28 novembre 2015 à 21:24:17

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 [[sticker:p/1kki]]

Chastifol
Chastifol
Niveau 10
28 novembre 2015 à 21:32:30

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

_Pytchoun
_Pytchoun
Niveau 67
29 novembre 2015 à 15:42:27

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)
_Pytchoun
_Pytchoun
Niveau 67
29 novembre 2015 à 15:53:35

Cependant il ne doit pas avoir d'étoile au milieu quand on monte mais seulement une sur le côté...

GrandeGuerre
GrandeGuerre
Niveau 11
29 novembre 2015 à 17:12:16

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 ?

_Pytchoun
_Pytchoun
Niveau 67
29 novembre 2015 à 17:22:28
    
    *    
   * *   
  *   *  
 *     * 
*********

Je sais pas si c'est clair ? On vide les étoiles du centre.

Message édité le 29 novembre 2015 à 17:24:14 par _Pytchoun
Chastifol
Chastifol
Niveau 10
29 novembre 2015 à 18:02:51
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à :(

Chastifol
Chastifol
Niveau 10
29 novembre 2015 à 18:09:37

:d) 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")
Message édité le 29 novembre 2015 à 18:10:04 par Chastifol
_Pytchoun
_Pytchoun
Niveau 67
29 novembre 2015 à 19:06:24
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 ?

Chastifol
Chastifol
Niveau 10
29 novembre 2015 à 19:25:54

Le 29 novembre 2015 à 19:06:24 _Pytchoun a écrit :
print("\n\n\n")

C'est pas vraiment utile non ?

:d) Oui ce n'est pas utile, c'est juste pour la lisibilité

Sinon c'est fonctionnel d'après ce que je vois non ?

:d) Normalement ça marche chez moi

Par contre impossible d'enlever l'espace pour la base du triangle ?

:d) Pourquoi enlever la base, le triangle ne sera pas fermé :(

pourquoi tu multiple par 2 * n ?

:d) 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

_Pytchoun
_Pytchoun
Niveau 67
29 novembre 2015 à 20:11:55

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
Message édité le 29 novembre 2015 à 20:12:55 par _Pytchoun
Schiffer
Schiffer
Niveau 10
29 novembre 2015 à 20:21:11

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

_Pytchoun
_Pytchoun
Niveau 67
29 novembre 2015 à 21:07:50

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.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment