infinite loop
James
fphsml at gmail.com
Tue Sep 6 18:56:02 EDT 2005
Devan L wrote:
> 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.
What you need is probably this...
def main():
while iteration:
if option == 1:
function_a()
elif option == 2:
function_b()
else:
raise 'option has to be either 1 or 2'
def function_a():
print 'hello from function a'
def function_b():
print 'hello from function b'
iteration = True
option = 1
main()
As a side note, note that you don't really need to return a None.
More information about the Python-list
mailing list