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

Cur*_*ind 15 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()
Run Code Online (Sandbox Code Playgroud)

当我运行它

$ ./Python-1.py alice
hello alice!!!!
None
Run Code Online (Sandbox Code Playgroud)

现在,我无法理解它的"None"来源?

Tho*_*ers 24

计算print代码中的语句数.你会看到,你打印"hello alice!!!"hello功能,打印结果hello功能.因为该hello函数不返回一个值(您对该return语句执行的操作),它最终会返回该对象None.你的print内部main功能最终打印None.


Suj*_*joy 6

改变你的

def main():
    print hello(sys.argv[1])
Run Code Online (Sandbox Code Playgroud)

def main():
    hello(sys.argv[1])
Run Code Online (Sandbox Code Playgroud)

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