Duda novato: for numeros decimales

Chema Cortes pych3m4 en gmail.com
Lun Mar 9 03:16:02 CET 2009


El 2009/3/8 Manuel Enrique Gutierrez Perez
<megutierrez en estudiantes.uci.cu> escribió:

> puedes hacer un xrange tu mismo.
>
>
> def xrange(start, stop=None, step=1):
>    if stop is None:
>        stop = start
>        start = 0
>    else:
>        stop = int(stop)
>    start = int(start)
>    step = int(step)
>
>    while start < stop:
>        yield start
>        start += step


No deberías convertir los parámetros en enteros si se quiere usar con
números reales --que es lo que se pedía--. También se debería
considerar que el paso ("step") puede ser negativo.

Hay muchas soluciones. Considerando que el xrange() original está
pensado para ser lo más eficiente posible, parece conveniente apoyarse
en él. Una solución elegante y versátil:

def Xrange2(start, stop=None, step=1):

	if step==0:
		raise ValueError,"Xrange2() arg 3 must not be zero"

	if stop is None:
		num=int(start/step)
	else:
		num=int((stop-start)/step)
	
	return (start+i*step for i in xrange(num))
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es