infinite loop

Devan L devlai at gmail.com
Tue Sep 6 18:40:11 EDT 2005


LOPEZ GARCIA DE LOMANA, ADRIAN wrote:
> Hi all,
>
> I have a question with some code I'm writting:
>
>
> def main():
>
>     if option == 1:
>
>         function_a()
>
>     elif option == 2:
>
>         function_b()
>
>     else:
>
>         raise 'option has to be either 1 or 2'
>
>     if iteration == True:
>
>         main()
>
> def function_a():
>
>     print 'hello from function a'
>
>     return None
>
> def function_b():
>
>     print 'hello from function b'
>
>     return None
>
> iteration = True
>
> option = 1
>
> main()
>
>
> I want an infinite loop, but after some iterations (996) it breaks:
>
>
> [alopez at dhcp-222 tmp]$ python test.py
> hello from function a
> hello from function a
> hello from function a
> .
> .
> .
> hello from function a
> hello from function a
> Traceback (most recent call last):
>   File "test.py", line 35, in ?
>     main()
>   File "test.py", line 17, in main
>     main()
>   File "test.py", line 17, in main
>
> .
> .
> .
> .
>   File "test.py", line 17, in main
>     main()
>   File "test.py", line 17, in main
>     main()
>   File "test.py", line 5, in main
>     function_a()
> RuntimeError: maximum recursion depth exceeded
>
>
> I don't understand it. Why am I not allowed to iterate infinitely? Something about the functions? What should I do for having an infinite loop?
>
> Thanks in advance for your help,
>
> Adrián.

You've written a recursive function-you're not iterating. The recursion
limit is there to keep you from making something which will do
something bad, like recurse cyclically.




More information about the Python-list mailing list