Python区切り文字に関する他の質問を見てきましたが、これに答える質問を見つけることができなかったので、ここに行きます. 配列を逆方向に再帰的に出力する関数を書いていますが、問題なく動作しているようです。
def print_array_backwards(array):
if (len(array) == 1):
print array[0],
return
print_array_backwards(array[1:])
print array[0],
##########################################
x = [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
print 'Array = ', x
print_array_backwards(x)
出力します:
Array = [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
4 3 2 1 0 4 3 2 1 0
問題は、次のように、print_array_backwards 関数の出力を他のテキストと合わせて印刷しようとしたときです。
print 'Array = ', x
print 'The array backwards is', print_array_backwards(x)
これは出力されます:
Array = [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
The array backwards is 4 3 2 1 0 4 3 2 1 0 None
私の質問は、この余分な None 値はどこから来たのですか??
関数の出力を次の行にプッシュするが、次のように print ステートメントでコンマを残す場合:
print 'Array = ', x
print 'The array backwards is',
print_array_backwards(x)
私は明らかに目的の出力を取得します:
Array = [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
The array backwards is 4 3 2 1 0 4 3 2 1 0
関数を print ステートメントの同じ行に残すと、関数の動作が異なる理由を理解できる人はいますか?
御時間ありがとうございます!