这个结果有什么问题?

问题描述:

我正在经历一个关于创建新线确定用一个例子功能教程,你必须编写的代码是这样的:这个结果有什么问题?

def new_line(): 
    print 

def three_lines(): 
    new_line() 
    new_line() 
    new_line() 

def nine_lines(): 
    three_lines() 
    three_lines() 
    three_lines() 

print "hello world" 

print nine_lines() 

print "goodbye" 

任何人可以解释为什么它包括之前“再见”“无”?

print nine_lines() 

您打印调用nine_lines()功能的结果。由于该函数不会明确返回一个值(使用return语句,如果您还没有看到那么你会很快),Python返回特殊值None

为了解决这个问题,把上面一行简单

nine_lines() 
+0

我甚至不知道为什么我在教程中没有一个放置'打印',哈哈,感谢您的帮助。 –

nine_lines()将默认返回None,因为你没有指定一个返回值。

只需使用

nine_lines() 

应该给你所需要的输出或者你也可以只使用

print "\n" * 8 

编辑:我改变了9到8.我忘了打印还增加了一个新的线字符。感谢斯文指出了这一点。

+0

最后一行将打印10个换行符。 :) –

+0

感谢您的帮助:) –

+1

如果您想要更多的可读性,总是会有'print'\ n'* 9,' –

当您运行功能nine_lines()它不返回任何内容,这意味着它返回None。因为你已经打印了返回值,所以在控制台中看到None。

+0

好的,所以它会返回九个空格,然后打印None,因为nine_lines不包含任何字符? –

+0

不,它不*返回*九空行,它*打印*他们。然后它*返回*'None'(因为如果你不返回任何东西,所有函数都会返回None)。然后打印。 – kindall

+0

对不起,我的意思是打印,谢谢你的帮助。 –