newbie here。誰かがなぜこのコードの最後に 'none'が表示されているのかを私に説明してもらえますか?python - リストを印刷し終わると 'none'になる
背景: は、私はいくつかのリストを含む変数(share_data)を持っている:
share_data =
[['Date', 'Ticker', 'Company', 'Mkt Cap', 'VM Rank', 'Value Rank', 'Momentum Rank'],
['2016-08-27', 'BEZ', 'Beazley', '2,063', '89', '72', '76'],
['2016-08-30', 'BEZ', 'Beazley', '2,063', '89', '72', '76'],
['2016-08-31', 'BEZ', 'Beazley', '2,050', '89', '72', '75'],
['2016-09-01', 'BEZ', 'Beazley', '2,039', '96', '73', '93'],
['2016-09-02', 'BEZ', 'Beazley', '2,069', '90', '72', '77'],
['2016-09-03', 'BEZ', 'Beazley', '2,120', '96', '70', '94'],
['2016-09-06', 'BEZ', 'Beazley', '2,106', '90', '71', '77'],
['2016-09-07', 'BEZ', 'Beazley', '2,085', '89', '71', '76'],
['2016-09-08', 'BEZ', 'Beazley', '2,091', '89', '72', '77'],
['2016-09-09', 'BEZ', 'Beazley', '2,114', '89', '71', '77'],
['2016-09-10', 'BEZ', 'Beazley', '2,084', '94', '71', '89'],
['2016-09-12', 'BEZ', 'Beazley', '2,084', '94', '71', '89']]
私は最後の5行を印刷するに興味を持っています。
私はメインプログラムでこれを使用する場合:
for row in share_data[-5:]:
print(row)
私は正しいデータを取得:
['2016-09-07', 'BEZ', 'Beazley', '2,085', '89', '71', '76']
['2016-09-08', 'BEZ', 'Beazley', '2,091', '89', '72', '77']
['2016-09-09', 'BEZ', 'Beazley', '2,114', '89', '71', '77']
['2016-09-10', 'BEZ', 'Beazley', '2,084', '94', '71', '89']
['2016-09-12', 'BEZ', 'Beazley', '2,084', '94', '71', '89']
...しかし、私はこれを行うための関数を作成したとき:
def share_details(share_data, n=5):
''' Prints the last n rows of a share's records'''
for row in share_data[-n:]:
print(row)
return
このように関数を呼び出しました。
print(share_details(share_data))
...私はこれが(末尾の「なし」に注意していない)され得るもの:
['2016-09-07', 'BEZ', 'Beazley', '2,085', '89', '71', '76']
['2016-09-08', 'BEZ', 'Beazley', '2,091', '89', '72', '77']
['2016-09-09', 'BEZ', 'Beazley', '2,114', '89', '71', '77']
['2016-09-10', 'BEZ', 'Beazley', '2,084', '94', '71', '89']
['2016-09-12', 'BEZ', 'Beazley', '2,084', '94', '71', '89']
None
私はそれをトリガー関数の最後に「復帰」の文だと思うが、どのように/なぜか分からない。
EDIT - 私のエラーが何だったかはっきりしています(つまり、内部にの機能を印刷し、戻り値も外にしています)。 すべての印刷を関数に委譲することをお勧めしますか?余分な読みやすさのために、呼び出され多分機能:
print_share_details(share_data)
それともニシキヘビ/読みやすく、より良い方法はありますか?
これはREPLから実行していますか? REPLは実行された式の値を表示/表示/表示します(この場合は..です)。これは、メソッド自体で使用されるprint文の副作用出力とは異なります。 – user2864740