打印命令行参数时无额外输出
今天是我学习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"
是从哪里来的?
2 个回答
6
把你的
def main():
print hello(sys.argv[1])
改成
def main():
hello(sys.argv[1])
你现在是直接打印了你 hello 方法的返回值。因为你没有指定返回值,所以它返回的是 None
,这就是你在输出中看到的内容。
26
数一数你代码里有多少个 print
语句。你会发现,在 hello
函数里,你打印了 "hello alice!!!"
,而且还打印了 hello
函数的结果。因为 hello
函数没有返回任何值(如果要返回值的话,你需要用 return
语句),所以它最后返回的是一个叫 None
的东西。你在 main
函数里的 print
语句就打印出了 None
。