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

时间:2010-10-17 12:36:09

标签: python function

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

#!/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"来自何处?

2 个答案:

答案 0 :(得分:24)

计算代码中print个语句的数量。您会看到在"hello alice!!!"函数中打印hello打印hello函数的结果。由于hello函数不返回值(您使用return语句执行),因此最终返回对象Noneprint功能中的main最终会打印None

答案 1 :(得分:6)

更改您的

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

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

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