CuriousMind CuriousMind - 1 year ago 66
Python Question

Extra output none while printing an command line argument

It's my day 1 of learning python. so it's a noob question for many of you. See the following code:

#!/usr/bin/env python

import sys

def hello(name):
name = name + '!!!!'
print 'hello', name

def main():
print hello(sys.argv[1])

if __name__ == '__main__':

when I run it

$ ./ alice
hello alice!!!!

Now, I have trouble understanding where this
came from?

Answer Source

Count the number of print statements in your code. You'll see that you're printing "hello alice!!!" in the hello function, and printing the result of the hello function. Because the hello function doesn't return a value (which you'd do with the return statement), it ends up returning the object None. Your print inside the main function ends up printing None.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download