つくる:レシート表示
1 行が長すぎて、どこを間違えたか見えない
第 1 章の総仕上げとして、4 行のレシートを返す make_receipt を作ります。おこづかい帳アプリの誕生です。
Python
=== おこづかい帳 ===
りんご 120円
みかん 80円
合計 200円4 行を \n でつなぐと、1 行のコードがかなり長くなります。長い 1 行は、どこで空白が抜けたのか目で追えません。そこで、かっこで囲んで途中で改行する書き方を覚えておきます。
Python
print(
"おはよう" + "\n"
+ "きょうは晴れ"
)かっこの中では、コードを何行に分けても 1 つの式として扱われます。結果は 1 行で書いたときとまったく同じです。+ を行の先頭に置くと、どこがつなぎ目なのかが一目で分かります。1 行 1 要素にしておくと、間違いも見つけやすくなります。
決め打ちのまま完成させる
make_receipt には引数を付けません。品名も金額もコードの中に書いた決め打ちです。それでは使えないのでは、と思うところですが、これは意図した第一歩です。
値に名前を付けて持ち回る道具をまだ持っていないので、外から渡された値を組み立てに使うのは無理があります。まず「必ず同じ結果を返す」形で完成させておくと、あとから中身を差し替えるのが楽になります。大きなものは、小さくて動くものから育てます。
合計の 200 も、120 + 80 を人が計算して書いてしまいます。ただ、その 200 がどこから出た数字なのかはコードを見ても分かりません。前回覚えたコメントで根拠を残しておくと、書き換えるときに自分が助かります。
やってみよう
関数 make_receipt を実装してください。引数は取りません。上の 4 行を \n でつないだ 1 本の文字列を返します。
1 行目は === おこづかい帳 ===、2 行目は りんご 120円、3 行目は みかん 80円、4 行目は 合計 200円 です。末尾に改行は付けません。
見出しのイコールは半角 3 つ、内側は半角スペース 1 つずつです。== や ==== では通りません。金額の数字も半角で、円 だけが全角です。数字を全角で打つと別の文字になり、一致しません。
合計がどう出た数字なのかを、# のコメントで残しておいてください。
要件
- 関数名は make_receipt で、引数は取らない
- 1行目は "= おこづかい帳 ="、2行目は "りんご 120円"、3行目は "みかん 80円"、4行目は "合計 200円"
- 行の区切りは \n を使い、末尾には改行を付けない
- print ではなく return で1本の文字列を返す