[IPython-user] Newbie - functions at prompt, functions in script

Fernando Perez Fernando.Perez at colorado.edu
Thu May 19 13:29:48 CDT 2005


Gary Taylor wrote:
> Hi,
> 
> 1. When I'm at the prompt and want to construct this simple
> "program", how do I do that when I need to hit enter after
> the line that reads   print "First Line."  ?
> 
> def newLine():
>   print "my function"
> 
> print "First Line."
> newLine()
> print "Second Line."

The only difference between defining functions interactively and in a script, 
is that when working interactively, a blank line tells the interpreter that 
you're finished.  So you can't have blank lines within a function definition. 
  In a file, there is no such restriction.

This is OK, since it's rare to edit large functions interactively.  If you are 
going to be editing anything that's more than a handful of lines, you should 
work in an editor to be able to comfortably save and modify your work.  You 
can use ipython's 'run' command (type 'run?' for details) to run your file 
each time you change it.

> 2. When I put this in a script, it only works if   def
> newLine()  is before   newLine()  . Does it have to be first
> or am I doing something incorrect?

Yes, you must first define the function before you use it.:

def foo(): pass

foo()  # OK

bar() # NOT OK, bar is not known yet.

def bar(): pass


Hope this helps,

f




More information about the IPython-user mailing list