質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

2052閲覧

関数を繰り返しの文で使うとき、なぜNoneが出るのか?

W.B

総合スコア9

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/07/31 06:40

pythonで関数を定義した後、繰り返しの文で関数を呼び起こすとNoneが表示されるのはなぜか?

python

1def pop(): 2 print('hello') 3 4for i in range(2): 5 print(pop()) 6
出力結果 hello None hello None

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

pop を呼び出すと hello と表示し、pop は何も返さない。
呼び出し元は pop が何も返さないので None を表示する。
以上を 2回繰り返す。

投稿2021/07/31 06:53

編集2021/07/31 06:54
kazuma-s

総合スコア8224

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

W.B

2021/07/31 09:47

ありがとうございました!
guest

0

ベストアンサー

最初の出力はpop内のprint文print('hello')が実行されたときのもので、その次の出力はforループ内のprint文print(pop())が実行されたときのものです。pop()が値を返さないのでNoneが出力されています。なので「繰り返しの文で関数を呼び起こすとNoneが表示される」わけではありません。

通常は下記のようにするでしょう。

Python

1def pop(): 2 print('hello') 3 4for i in range(2): 5 pop() 6#hello 7#hello

または

Python

1def pop(): 2 return 'hello' 3 4for i in range(2): 5 print(pop()) 6#hello 7#hello

投稿2021/07/31 07:49

meg_

総合スコア10607

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

W.B

2021/07/31 10:25 編集

ありがとうございます。 始めの文で「pop()」が実行されて、2番目の文は「print(pop())」が実行されたということなんですね。 「print(pop())」で出力するとき、関数内で「return」を使わないで「print」だと、始めに「pop()」が実行されて次に値を返さないので「None」を返すということになるんでしょうか、、、。ややこしいですね。 また別の質問欄で質問するかもしれません。とりあえず、ありがとうございました!
guest

0

popを使わないで、直接for文に代入すると。

python

1for i in range(2) 2 print('hello')

投稿2021/07/31 06:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2021/07/31 07:56

質問:「繰り返しの文で関数を呼び起こすとNoneが表示されるのはなぜか?」に答えていない。低評価。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問