[Tutor] recursion odities accross diferent versions of the 2.4.1 interpreter

Brian van den Broek bvande at po-box.mcgill.ca
Tue Jul 12 23:08:09 CEST 2005

Hi all,

I'm playing about with some recursive functions where I am getting 
near the recursion limit. This caused me to do a test, and I am 
puzzled by the different results when run in the prompt, IDLE and 

My simple test code is:
 >>> c = 0
 >>> def recursion_test():
	global c
		print c

When this very same code is run in the different interpreters (or, 
different Python environments; I'm not sure of the correct terminology 
here) I get different results. I'll show those, skipping the identical 
code that created them:

Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit (Intel)] 
on win32
 >>> recursion_test()

IDLE 1.1.1
 >>> recursion_test()

PythonWin 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit 
(Intel)] on win32.		
 >>> recursion_test()

That the printed numbers differ doesn't worry me; I assume since IDLE 
and PythonWin are implemented in Python, the overhead of running them 
eats up a recursion level or 6, according to how exactly they are 

But the two puzzles are:

1) Why the difference in printing format (IDLE prints twice on one 
line, PythonWin thrice with different alignment)?


2) With (and only with) IDLE, I never regain control of the shell 
(note the lack of a terminal '>>>' and have to restart to do anything 
else. That feels bug-like.

It seems a fair bet that the hypothesis for why the printed numbers 
are different is also at play in the last two puzzles. But, I was 
wondering if anyone could say something to shed a bit more light. In 
particular, is my sense of possible bug well grounded?

Thanks and best,

Brian vdB

More information about the Tutor mailing list