Obtención de bucle infinito en la serie de fibonacci en Python

#Program to print fibonacci until a range. print "Fibonacci Series" print "Enter a range" range = raw_input() first=1 second =1 print first print ", " print second print ", " third = 0 while(third < range): third=first+second print third print ", " first = second second = third #End of program 

Aquí, el progtwig le pide al usuario un rango e imprime la serie hasta el rango. Pero, estoy consiguiendo la serie de bucle infinito. ¿Alguien puede ayudarme?

range = raw_input() establece que range sea ​​una cadena , por ejemplo, asigna range = '5' lugar de range = 5 .

El third < range comparación third < range por lo tanto siempre será True en Python 2.x *, ya que los enteros siempre comparan menos que cadenas:

 >>> 10 < '5' True 

La solución mínima es convertir la entrada en un entero:

 range = int(raw_input()) 

Sin embargo, tenga en cuenta que el range es una función incorporada , por lo que debe elegir un nombre diferente para esa variable.

* Tenga en cuenta que en 3.x, comparar una cadena con un entero provoca un error:

 >>> 10 < '5' Traceback (most recent call last): File "", line 1, in  10 < '5' TypeError: unorderable types: int() < str()