I donä't get while-loops

Tyler Breisacher dancinguy at linkline.com
Sat Aug 2 21:44:22 EDT 2008


You're actually calling the read2() function from within read2(). This 
is called recursion, and it is *not* what you want in this case, since 
it unnecessarily fills up your call stack. Remember that a while loop 
automatically goes back to the top without you having to re-call your 
function. I would just do this:

def read3():
     expr = raw_input("Lisp> ")
     while expr != "quit":
         print parse(expr)
         expr = raw_input("Lisp> ")
     print "Good session!"


ssecorp wrote:
> in read2 it never quits when I write quit, why?
> 
> def read():
>     expr = raw_input("Lisp> ")
>     if expr != "quit":
>         print parse(expr)
>         read()
>     else:
>         print "Good session!"
> 
> def read2():
>     expr = ""
>     while expr != "quit":
>         expr = raw_input("Lisp> ")
>         print parse(expr)
>         read2()
>     print "Good session!"
> 




More information about the Python-list mailing list