Bucles en Python

¿Cuál es la mejor manera de hacer esto en Python?

for (v = n / 2 - 1; v >= 0; v--) 

De hecho, primero probé con Google, pero por lo que puedo ver, la única solución sería usar el while .

La forma de hacerlo es con xrange() :

 for v in xrange(n // 2 - 1, -1, -1): 

(O, en Python 3.x, con range() lugar de xrange() .) // es división de pisos, lo que garantiza que el resultado sea un número entero.

Yo haría esto:

 for i in reversed(range(n // 2)): # Your code pass 

Es un poco más claro que esto es una secuencia inversa, cuál es el límite inferior y cuál es el límite superior.

 for v in range(n//2, -1, -1) 

Sin embargo, en el 90% de los casos en los que habría usado un bucle for en C / Java / C # / VB, lo que realmente desea es una comprensión de lista :

 listOfStuff = [doSomethingWith(v) for v in range(n//2, -1, -1)] 
 for v in xrange(n/2 - 1, 0, -1): #your code here 

Donde v y n son int s o tratados como int s. Esto significa que la división será una división entera, es decir, 1/2 == 0 is True .

Nota: Esto es para Python 2.x.