printで表示
このレッスンで作るもの — 画面に文字を出す
print で表示する
Python を書いて最初にやることは、画面に文字を出すことです。使うのは print という命令です。print は「かっこの中に渡したものを画面に出す」という、それだけの働きをします。
このコースでは全 74 レッスンを通して おこづかい帳アプリ を少しずつ育てていきます。今日はその 1 行目、アプリの見出しを表示するところから始めます。
プログラミングの学習で最初につまずくのは、書いたコードが「動いたのか動いていないのか分からない」ことです。
print の書き方
print のあとにかっこ () を書き、その中に表示したいものを入れます。文字を表示したいときは、ダブルクオート " かシングルクオート ' で囲みます。囲まれた文字のかたまりを 文字列 と呼びます。
print("おこづかい帳")これを実行すると、画面に おこづかい帳 と出ます。クオートは文字列の範囲を示す目印なので、表示結果には出てきません。
数値を出すときはクオートで囲みません。print(120) は 120 と表示します。print("120") も見た目は同じ 120 ですが、前者は数値、後者は文字列で、中身の型が違います。この違いは第 2 章で詳しく扱います。
print("おこづかい帳")
print("りんご 120円")
print("みかん 80円")print を 3 回書けば、3 行表示されます。上から順に実行されるので、書いた順番のとおりに出てきます。
表示するのと返すのは違う
このコースの演習では、print で表示する代わりに return で値を返す 関数を書いてもらいます。採点の仕組みが、関数が返した値を見て正解かどうかを判定するためです。
def title_line():
return "=== おこづかい帳 ==="def は関数を作るための命令、title_line が関数の名前です。return のうしろに書いた値が、この関数の答えになります。
returnはプログラムの中で値を受け渡すための命令です。役割がまったく違うので、混ぜないように気をつけます。
print と return の違いは、初心者が最初に必ず引っかかるところです。図で整理しておきます。
print だけ書いて return を書かない関数は、何も返していないことになり、None という「値がない」ことを表す特別な値が返ります。採点はここで落ちます。
動きを追ってみる
title_line() を呼ぶと何が起きるかを、順番に追ってみます。
title_line()と書いて関数を呼び出す- 関数の中に入り、
return "=== おこづかい帳 ==="に到達する - その文字列が関数の答えとして、呼び出した場所に戻る
戻ってきた値は変数に入れて使えます。
def title_line():
return "=== おこづかい帳 ==="
heading = title_line()
print(heading)heading に文字列が入り、それを print で表示しています。関数を作る側と使う側が分かれているのが分かります。
関数は「材料を渡すと答えを返してくれる箱」です。今回の
title_lineは材料なしで、いつも同じ答えを返す箱です。
よくある間違い
returnを書き忘れる —print("=== おこづかい帳 ===")とだけ書くと、画面には出ますが関数の戻り値はNoneになり、テストは失敗します。必ずreturnで返します。- クオートの閉じ忘れ —
return "=== おこづかい帳 ==のように閉じるクオートがないとSyntaxErrorになります。開いたら必ず閉じます。 - 全角の記号を使ってしまう —
print()のように全角のかっこを書くとエラーになります。記号はすべて半角で書きます。日本語を打つ設定のまま記号を入力すると起こりがちです。
SyntaxError は「文法が壊れている」という意味のエラーです。行番号が一緒に表示されるので、その行とその 1 つ前の行を見ると原因が見つかります。
やってみよう
関数 title_line を実装してください。引数は取らず、文字列 "=== おこづかい帳 ===" を return で返します。イコールは半角 3 つ、その内側は半角スペース 1 つずつです。
print ではなく return を使う点に注意します。書けたら実行して、結果が期待どおりか確かめてみてください。余裕があれば、print(title_line()) と書いて画面にも出してみると、return した値がそのまま print に渡る流れが体感できます。
要件
- 関数名は title_line で、引数は取らない
- 文字列 "= おこづかい帳 =" を return する
- print ではなく return を使う
- イコールは半角 3 つ、内側は半角スペース 1 つずつ
入出力例
title_line() → "=== おこづかい帳 ==="
title_line() → "=== おこづかい帳 ==="
title_line() → "=== おこづかい帳 ==="
title_line() → "=== おこづかい帳 ==="