Skip to content Skip to sidebar Skip to footer

Why Is This Def Function Not Being Executed In Python?

Python is simply bringing up another prompt when I enter the following piece of code from Zed Shaw exercise 18. # this one is like our scripts with argv def print_two(*args): a

Solution 1:

The indentation of the last four lines is wrong. Because they're indented, the python interpreter thinks they're part of print_none(). Unindent them, and the interpreter will call them as expected. It should look like this:

>>>print_two("Zed","Shaw")
[... etc ...]

Solution 2:

def defines a function. Functions are potential...they a set of steps waiting to be executed. To execute a function in python it must be defined and called.

# this one takes no argumentdefprint_none() :
    print"I got nothin'."#brings up prompt..then execute it
print_none()

Solution 3:

Remove your indentation on the final lines. Because they are indented they are part of print_none() instead of executing in the global scope. Once they are back in the global scope you should see them running.

Solution 4:

you need to keep the code aligned. You calls to the above method were treat as part of the function print_none().

Try this:

# this one is like our scripts with argvdefprint_two(*args):
    arg1, arg2 = args
    print"arg1: %r, arg2: %r" % (arg1, arg2)

# ok, that *args is actually pointless, we can just do thisdefprint_two_again(arg1, arg2) :
    print"arg1: %r, arg2: %r" % (arg1, arg2)

# this just takes one argumentdefprint_one(arg1) :
    print"arg1: %r" % arg1

# this one takes no argumentdefprint_none() :
    print"I got nothin'."


print_two("Zed","Shaw")
print_two_again("Zed","Shaw")
print_one("First!")
print_none()

Post a Comment for "Why Is This Def Function Not Being Executed In Python?"