为啥在输出中打印“无”? [复制]

Posted

技术标签:

【中文标题】为啥在输出中打印“无”? [复制]【英文标题】:Why is this printing 'None' in the output? [duplicate]为什么在输出中打印“无”? [复制] 【发布时间】:2015-05-02 23:39:08 【问题描述】:

我定义了一个函数如下:

def lyrics():
    print "The very first line"
print lyrics()

但是为什么输出返回None

The very first line
None

【问题讨论】:

【参考方案1】:

因为有两个打印语句。一是内部功能,二是外部功能。当函数不返回任何内容时,它会隐式返回None

在函数末尾使用return 语句返回值。

例如:

返回None

>>> def test1():
...    print "In function."
... 
>>> a = test1()
In function.
>>> print a
None
>>> 
>>> print test1()
In function.
None
>>>
>>> test1()
In function.
>>> 

使用返回语句

>>> def test():
...   return "ACV"
... 
>>> print test()
ACV
>>> 
>>> a = test()
>>> print a
ACV
>>> 

【讨论】:

嘿,你能告诉我代码有什么问题吗?它只返回最后一位 def another(n): rev = 0 while(n>=0): rem=n%10 rev = (10*rev)+ n%10 n //= 10 return rev print another(2154)输出:4 @def_0101:好的,你在做什么?倒数?? 是反向整数 @def_0101: def another(n): rev = 0 while(n!=0): rev = rev*10 + n%10 n //= 10 return rev check .. 在下一条评论中添加解释。 @def_0101:对于 Reverse,我们需要从最后一个到第一个的数字中获取数字,并通过将这些数字与 0、10、100、1000 的倍数相加来创建新数字... 1. 如何获取最后一位:使用% 操作获取您完成的最后一位。 2.将输入数字减少/除10,这也你完成了。 3.通过将%运算的结果添加到10的倍数的反向数字来创建反向数字。让我知道【参考方案2】:

由于双重打印功能。我建议你在函数定义中使用return 而不是print

def lyrics():
    return "The very first line"
print(lyrics())

def lyrics():
    print("The very first line")
lyrics()

【讨论】:

有没有其他方法可以使用 print 语句? 只需lyrics() 就足够了。 谢谢 () 我是菜鸟,对编​​程很陌生

以上是关于为啥在输出中打印“无”? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥在将项目附加到现有列表时会得到“无”项目? [复制]

在 python 中,为啥列表与列表 [:] 不同? [复制]

为啥这个无操作循环没有被优化掉?

为啥 Banana 在 JavaScript 中打印? [复制]

为啥在烧瓶中没有调用函数时会有一些打印? [复制]

为啥这会在我的控制台上打印两次? [复制]