2011-08-11 2 views
0

Désolé pour ma question pour débutant. Je veux construire étape de la plage décimale pour le cycle en utilisant la structure suivante:gamme décimale pour

max_value = 10 
my_range = [r * 0.01 for r in range(0, max_value) ] 
    for i in range (my_range): //Error 
     print (i) 

Mais il y a l'erreur suivante:

TypeError: 'list' object cannot be interpreted as an integer 
+0

Veuillez donner un exemple d'une séquence que vous aimeriez parcourir. –

+0

2BasicWolf: J'ai mis à jour le code ... – abcdef

Répondre

3

Votre my_range est déjà une liste. Il suffit de faire:

for i in my_range: 
    print(i) 
+0

Merci pour votre réponse ... – abcdef

1

L'erreur apparaît parce que la fonction range() accepte trois arguments: la valeur de départ (inclus dans l'itération), la valeur finale (non inclus) et une étape. Du point de vue mathématique, c'est: [a1, a2, ... an)d = a2 - a1 est l'étape. Par exemple, my_range = [r * 0.01 for r in range(0, max_value) ] crée une liste. Et naturellement, range() ne peut pas accepter une liste en tant qu'argument.

En cas, si vous avez besoin [0,01, 0,02, ... 10]:

step = 0.01 
max_val = 10 
for i in range(0, max_val/step + 1): 
    print i * step 
0

Essayez

for i in my_range: 
    print(i) 

Vous avez créer la liste my_range, que vous pouvez parcourir avec for. Vous n'avez plus besoin d'appeler le range().

La fonction range() accepte les entiers comme paramètres, mais l'exécution range(my_range) passe dans votre liste, ce qui entraîne cette erreur.