引き続き『退屈なことはPythonにやらせよう』を基に進めます。
3.2 戻り値とreturn文
returnとprintの違いがよくわからなくて、1時間悩みました。自分の愚かさにいらつきましたが、検索すると結構他にも悩んでいる人がいることを知ります。いろいろみて、わかりやすかったのがこの方の説明。https://www.sejuku.net/blog/40791#returnprint
分からなくさせている主な原因は、コンソール(ターミナル、コマンドプロンプト)というものの仕組みです。
だって、ターミナルにうちこむとこうなるのです。
1 2 3 4 5 | def hell(): ... return 'hello' ... >>> hell() 'hello' |
この最後に'hello'が出力されるのは1行1行入力するコンソールだから出ているのであって、先にコードを一気に書いて、そのあと実行する場合には、この時点では'hello'とは出ない。
ではどういうときにprintではなくreturnを使うのか。
それは、その力をまだ次の関数にもとっておきたいとき、である。
1 2 3 4 5 6 7 8 9 | >>> def hell(): ... return 'hello' #①ここでは力保存。printだと力を放出してしまう。 ... >>> def bye(): ... a = hell() #②ここではまだ①の力が保存されている。 ... return a + ' ' + 'byebye' #③ここで①の力保存したまま、②にさらにつけ足せる。 ... >>> print (bye()) hello byebye #④一気に合わせ技炸裂する |
これはあくまで私なりの理解である。余計わかりにくくしてしまったらスルーしていただきたい。 今日はここまで。
No comments:
Post a Comment