Python 打印命令行参数时无额外输出

Python 打印命令行参数时无额外输出,python,function,Python,Function,这是我学习python的第一天。所以对你们中的许多人来说,这是一个没有问题的问题。请参阅以下代码: #!/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() 当我运行它时 $ ./Pytho

这是我学习python的第一天。所以对你们中的许多人来说,这是一个没有问题的问题。请参阅以下代码:

#!/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()
当我运行它时

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

现在,我很难理解这个
“None”
从何而来?

计算代码中
打印
语句的数量。您将看到您正在
hello
函数中打印
“hello alice!!!”
,并打印
hello
函数的结果。由于
hello
函数不返回值(您可以使用
return
语句执行此操作),因此它最终返回对象
None
。您的
打印
主功能中
最后打印

更改

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


您正在显式打印hello方法的返回值。由于您没有指定返回值,因此它将返回您在输出中看到的
None

非常感谢您的快速响应和详细解释。我明白你说的话。
def main():
    hello(sys.argv[1])