ど文系の中学校英語教員がプログラミング言語Pythonを学んでみた 14日目 printとreturnの違いの巻

Friday, 6 March 2020

プログラミングとPython


 引き続き『退屈なことは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#④一気に合わせ技炸裂する

これはあくまで私なりの理解である。余計わかりにくくしてしまったらスルーしていただきたい。 今日はここまで。