あなたの関数は何も返さないので、print
ステートメントで使用すると get None
. したがって、次のように関数を呼び出すだけです。
leapyr(1900)
return
または、(ステートメントを使用して) 値を返すように関数を変更すると、ステートメントによって出力されますprint
。
注:これは、うるう年の計算で発生する可能性のある問題に対処するものではありませんが、関数呼び出しNone
の結果としてprint
.
説明:
上記に関するいくつかの短い例:
def add2(n1, n2):
print 'the result is:', n1 + n2 # prints but uses no *return* statement
def add2_New(n1, n2):
return n1 + n2 # returns the result to caller
今私がそれらを呼び出すとき:
print add2(10, 5)
これは与える:
the result is: 15
None
最初の行は、内のprint
ステートメントから来ています。return ステートメントを持たない関数を呼び出すと、print ステートメントからが出力されます。ちなみに、 関数を単純に (note, no statement) で呼び出した場合:add2()
None
add2()
None
add2()
print
add2()
(あなたがやろうとしているように見えます)the result is: 15
なしで、printステートメントの出力を取得しただけです。None
これを次のものと比較してください。
print add2_New(10, 5)
与える:
15
この場合、結果は関数内で計算され、add2_New()
print ステートメントはなく、呼び出し元に返され、呼び出し元はそれを出力します。