CuriousMind CuriousMind - 28 days ago 8
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__':
main()


when I run it

$ ./Python-1.py alice
hello alice!!!!
None


Now, I have trouble understanding where this
"None"
came from?

Answer

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.

Comments