Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1193 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  petit souci avec une fonction simple

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

petit souci avec une fonction simple

n°1589844
Black_Knig​ht
Posté le 22-07-2007 à 21:23:34  profilanswer
 

Bonjour
 
Je viens de débuter la programmation en Python et je commence à jouer avec les fonctions. Bon, mon problème n'est pas vraiment lié aux fonctions, c'est surement une erreur d'algorithmique. alors voilà: J'ai une fonction qui prend comme argument un entier n et imprime une pyramide de hauteur n. Mon problème est qu'elle imprime deux espace de trop à chaque ligne! voyez plutôt:  
 

Code :
  1. def pyramide (hauteur):
  2. ligne = 1
  3. while ligne <= hauteur:
  4.  print " " * (hauteur-ligne), "*" * (ligne * 2 - 1), " " * (hauteur-ligne)
  5.  ligne = ligne + 1


 
ceci me donne, lorsqu'évalué à 6, cette pyramide:
 

Citation :


      *      
     ***      
    *****    
   *******    
  *********  
 ***********  


 
Mon souci est qu'il y a un espace de trop avant et après chaque série d'étoiles. Bref, il ne devrait y avoir aucune espace sur la dernière ligne.
Si on prend la première ligne par exemple, on a hauteur-ligne = 6-1 = 5. Donc on devrait avoir 5 expaces. Or, il y en a 6!!
 
pouvez-vous m'aider? c'est surement très simple, mais j'ai pas vu.
 
merci

mood
Publicité
Posté le 22-07-2007 à 21:23:34  profilanswer
 

n°1589913
dividee
Posté le 23-07-2007 à 02:58:08  profilanswer
 

Avec l'instruction print, les expressions (séparées par des virgules) sont séparées par un espace à l'affichage. Remplace les virgules par des + (concaténation de chaines) et ça ira.


Message édité par dividee le 23-07-2007 à 02:58:33
n°1589914
Black_Knig​ht
Posté le 23-07-2007 à 04:40:44  profilanswer
 

ah, merci!! effectivement tellement simple. Ça fonctionne nickel!

n°1590057
Sve@r
Posté le 23-07-2007 à 12:52:15  profilanswer
 

Black_Knight a écrit :


Code :
  1. ligne = 1
  2. while ligne <= hauteur:
  3. print ...
  4. ligne = ligne + 1



 

Code :
  1. for ligne in range(1, hauteur + 1):
  2. print ...


 


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1590382
Black_Knig​ht
Posté le 23-07-2007 à 17:42:22  profilanswer
 

et quelle est la différence exactement? est-ce que le FOR a une vitesse d'exécution plus rapide, ou y a-t-il une autre raison?

n°1590411
elpacifica​tor
Posté le 23-07-2007 à 20:12:21  profilanswer
 

Une alternative:

Code :
  1. def pyramide(hauteur):
  2.     return "\n".join([("*" *i).center(hauteur)
  3.                            for i in range(1, hauteur*2+1, 2)])
  4. print pyramide(9)

Message cité 1 fois
Message édité par elpacificator le 23-07-2007 à 20:17:55
n°1590417
masklinn
í dag viðrar vel til loftárása
Posté le 23-07-2007 à 20:34:07  profilanswer
 

Black_Knight a écrit :

et quelle est la différence exactement? est-ce que le FOR a une vitesse d'exécution plus rapide, ou y a-t-il une autre raison?


Le FOR est lisible, ton truc non

elpacificator a écrit :

Une alternative:

Code :
  1. def pyramide(hauteur):
  2.     return "\n".join([("*" *i).center(hauteur)
  3.                            for i in range(1, hauteur*2+1, 2)])
  4. print pyramide(9)



C'est immonde :/


Message édité par masklinn le 23-07-2007 à 20:34:27

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1591098
Sve@r
Posté le 24-07-2007 à 22:19:57  profilanswer
 

Black_Knight a écrit :

et quelle est la différence exactement? est-ce que le FOR a une vitesse d'exécution plus rapide, ou y a-t-il une autre raison?


Ben non. Juste que ça évite l'initialisation et l'incrément...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  petit souci avec une fonction simple

 

Sujets relatifs
Excel macro pour appliquer fonction sur une colonneProblème avec fonction IF NOT EXIST
VBA [Résolu] Passer une fonction en paramètreappel d'une fonction (execution) qui est definie par un char[]
(Petit) problème avec un script !Appeler une fonction C à partir d'un shell
Petit coup de pouce : bdd et gui[fonction] pour convertir les accents et choses non ascii ?
[C] Fonction niveau debutantPetit défi !! Compteurs qui s'incrémentent à l'aide d'une commande
Plus de sujets relatifs à : petit souci avec une fonction simple


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)