[Python] [Résolu] Liste

Liste [Python] [Résolu] - Python - Programmation

Marsh Posté le 09-01-2010 à 18:32:58    

Re-bonjour,
 
Comme il m'a été suggéré, j'ouvre un nouveau topic pour ma nouvelle question. Cette dernière concerne les listes.
 
Dans le code ci-dessous, je ne comprends pas pourquoi seul le premier item de ma liste res s'affiche et pas l'ensemble des 10 résultats.
n est bien incrémenté à chaque tour de boucle pourtant :??:  
 

Citation :

def table(base):
    res = []
    n = 1
    while n<11:
        y = n*base
        res.append(y)
        n = n+1
        return res
 
t5 = table(5)
print t5


 
J'ai fait du Python toute l'aprem (on est samedi, je sais [:joce]), peut-être que c'est une erreur toute bête et que je ne la vois plus.
 
Merci de bien vouloir m'aider malgré tout :)

Message cité 1 fois
Message édité par Profil supprimé le 09-01-2010 à 19:17:50
Reply

Marsh Posté le 09-01-2010 à 18:32:58   

Reply

Marsh Posté le 09-01-2010 à 18:40:47    

Effectivement c'est tout bête.

 

T'as une tabulation de trop sur ton return. Du coup il se fait à la première boucle du while... et donc t'as qu'une valeurs dans ta liste!


Message édité par Kyfun le 09-01-2010 à 18:41:02

---------------
Comme dirait quelqu'un de beaucoup plus avisé que moi, quelquefois c'est toi qui cognes le bar mais d'autres fois, et ben, c'est le bar qui te cogne.
Reply

Marsh Posté le 09-01-2010 à 18:46:03    

[:prozac]  Je savais que ça allait être tout con. Merci ! :jap:  
 
Je crois que je vais arrêter le Python pour aujourd'hui.
 
Cela dit, pour ma défense, je n'ai pas l'habitude de cette indentation obligatoire. En C, C++, Javascript ou PHP par exemple, ce n'est pas le cas :D  

Reply

Marsh Posté le 09-01-2010 à 19:06:17    

 

Oui Python impose une grande rigueur à ce niveau ce qui au final facilite bien la lecture je trouve :)


Message édité par Kyfun le 09-01-2010 à 19:06:25

---------------
Comme dirait quelqu'un de beaucoup plus avisé que moi, quelquefois c'est toi qui cognes le bar mais d'autres fois, et ben, c'est le bar qui te cogne.
Reply

Marsh Posté le 09-01-2010 à 19:15:17    

C'est sûr, mais le moindre espace oublié ou en trop provoque une erreur dans le programme :D  
 
Je ferai plus attention la prochaine fois.
 
Merci encore :jap:  
 

Reply

Marsh Posté le 17-01-2010 à 23:37:48    


 

Code :
  1. def table(base):
  2.    return [x * base for x in range(1, 11)]
  3. # table()
  4.  
  5. t5 = table(5)
  6. print t5

Message cité 1 fois
Message édité par Sve@r le 17-01-2010 à 23:38:26

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

Marsh Posté le 20-01-2010 à 11:29:19    

Sve@r a écrit :

 
Code :
  1. def table(base):
  2.    return [x * base for x in range(1, 11)]
  3. # table()
  4.  
  5. t5 = table(5)
  6. print t5



Code :
  1. from operator import mul
  2. from functools import partial
  3. table = lambda base: map(partial(mul, base), range(1, 11))
  4.  
  5. t5 = table(5)
 

C'est vraiment nul que python ait pas d'opérateur de composition [:sadnoir]


Message édité par masklinn le 20-01-2010 à 11:29:43

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed