1
#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

Here, the program asks user for a range and prints the series upto the range. But, m getting the series of infinite loop. Can anyone help me?

1 Answer 1

2

range = raw_input() sets range to be a string, e.g. it is assigning range = '5' rather than range = 5.

The comparison third < range will therefore always be True in Python 2.x *, as integers always compare less than strings:

>>> 10 < '5'
True

The minimal fix is to convert the input to an integer:

range = int(raw_input())

However, note that range is a built-in function, so you should pick a different name for that variable.

* Note that in 3.x comparing a string with an integer causes an error:

>>> 10 < '5'
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    10 < '5'
TypeError: unorderable types: int() < str()
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.