2017-06-30 8 views
-4

I don't know why it is there. If it has something to do with the function diffループが1回実行されるたびに "none"が表示されるのはなぜですか?

+1

'diff'の戻り値を' print'します。 'diff'は何も明示的に返さないので、暗黙のうちに' None'を返します。 –

+0

@Nirbhay:関数はループから最初に呼び出されましたが、 'print different'が実行されるまで何も取得せず、最後に関数は何も返さず、' None'を返しました。 – lkdhruw

+0

これは役に立ちました。ありがとうございました –

答えて

0

機能diffprint diff(z)だけNoneをプリントアウトする理由です何も返しません。このようにする必要があります

def diff(n): 
    x = n**(1.0/2) 
    y = (n-2)**(1.0/2) 
    differ = x-y 
    return differ 

z = 2 
while z >= 0 and z <= 100: 
    print diff(z) 
    z = z+1 
0

コメントが正しく指摘されているため、diffには明示的な戻り値がありません。 diffには、あなたが望む番号を印刷するのに必要な副作用があるので、これはあまりにも悪くないでしょう。しかし、whileループではdiffの結果を出力するようPythonに依頼するので、戻り値を返すようになるたびにdiffNoneが返されます。 diffを副作用がないように変更して値を返すか(単純にprintreturnに変更)、副作用のために関数を呼び出しますが、戻り値を出力しないでください(printステートメントを取り除く) whileループで)。

これが役に立ちます。

関連する問題