Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
928 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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR