web-dev-qa-db-ja.com

この出力で「なし」と出力されるのはなぜですか?

次のように関数を定義しました。

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

しかし、なぜ出力はNoneを返しますか:

The very first line
None
19
def_0101

2つのprint文があるため。 1つ目は内部関数で、2つ目は外部関数です。関数がその時点で何も返さない場合、None値を返します。

関数の最後でreturnステートメントを使用して値を返します。

例えば。:

None値を返します。

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

Returnステートメントを使用する

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

ダブルプリント機能のため。関数定義内でreturnの代わりにprintを使用することをお勧めします。

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

[〜#〜] or [〜#〜]

def lyrics():
    print "The very first line"
lyrics()
9
Avinash Raj