Getting infinite loop in fibonacci series in Pytho

2019-03-02 14:01发布

#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条回答
兄弟一词,经得起流年.
2楼-- · 2019-03-02 14:28

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()
查看更多
登录 后发表回答