Boucle à l'envers en utilisant des indices en Python?
j'essaie de boucler la boucle de 100 à 0. Comment je fais ça en Python?
for i in range (100,0)
ça ne marche pas.
12 réponses
À mon avis, c'est le plus lisible:
for i in reversed(xrange(101)):
print i,
for i in range(100, -1, -1)
et une solution légèrement plus longue (et plus lente):
for i in reversed(range(101))
for i in range(101)[::-1]
généralement en Python, vous pouvez utiliser des indices négatifs pour commencer par le dos:
numbers = [10, 20, 30, 40, 50]
for i in xrange(len(numbers)):
print numbers[-i - 1]
résultat:
50
40
30
20
10
une autre solution:
z = 10
for x in range (z):
y = z-x
print y
résultat:
10
9
8
7
6
5
4
3
2
1
Conseil: Si vous utilisez cette méthode pour recompter les indices dans une liste, vous voudrez -1 à partir de la valeur 'y', car les indices de votre liste commenceront à 0.
court et doux. C'était ma solution en faisant cours de codeAcademy. Imprime une corde dans l'ordre de rev.
def reverse(text):
string = ""
for i in range(len(text)-1,-1,-1):
string += text[i]
return string
Pourquoi votre code n'a pas fonctionné
Vous code for i in range (100, 0)
est très bien, sauf
le troisième paramètre ( step
) est par défaut +1
. Vous devez donc spécifier le troisième paramètre à range () comme -1
pour revenir en arrière.
for i in range(100, -1, -1):
print(i)
NOTE: Cela inclut 100 & 0 dans la sortie.
il y a plusieurs façons.
Meilleure Façon
pour Pythonic way, cochez PEP 0322 .
c'est un exemple pythonique Python3 à imprimer de 100 à 0 (y compris 100 & 0).
for i in reversed(range(101)):
print(i)
vous pouvez toujours augmenter la portée et soustraire d'une variable dans votre cas 100 - i
où i in range( 0, 101 )
.
for i in range( 0, 101 ):
print 100 - i
la réponse simple pour résoudre votre problème pourrait être comme ceci:
for i in range(100):
k = 100 - i
print k
j'ai essayé cela dans l'un des exercices de codeacademy (inverser les chars dans une chaîne de caractères sans utiliser ni inversé: -1)
def reverse(text):
chars= []
l = len(text)
last = l-1
for i in range (l):
chars.append(text[last])
last-=1
result= ""
for c in chars:
result += c
return result
print reverse('hola')