1. りんごと120で2行のラベルになる
  2. 牛乳と198でも同じ形になる
  3. 金額が0でも同じ規則で組み立てる
  4. 品名が長くてもそのまま使う
  5. 品名が空文字でも先頭に空白が1つ入るだけ
コース一覧
Python入門:基礎文法編
変数

Python入門:基礎文法編

変数、条件分岐、ループ、関数、リスト・辞書、ファイル操作など Python の基礎文法を、ブラウザ上で毎レッスン実際にコードを書き、自分だけの「おこづかい帳アプリ」を育てながら学べる無料コースです。プログラミング完全未経験から始められ、環境構築や事前知識は一切不要です。約 18 時間 (1 日 30 分 × 37 日) で 74 レッスンを修了でき、修了後は入力・集計・ファイル保存まで備えたスクリプトを1から書けるようになります。

1
はじめての Python
01. printで表示15分
02. 文字列の連結15分
03. 四則演算15分
04. 実行順序15分
05. コメント15分
06. エラーを読んでみる15分
07. つくる:レシート表示15分
08. 第1章クイズ10分
2
変数とデータ型
01. 変数15分
02. typeで型を調べる15分
03. 数値への変換15分
04. 文字列への変換15分
05. boolとNone15分
06. f-string15分
07. 入力を受け取る15分
08. つくる:入力できるおこづかい帳15分
09. 第2章クイズ10分
3
演算子と式
01. 比較演算子15分
02. 論理演算子15分
03. in演算子15分
04. 剰余と切り捨て除算15分
05. 連鎖比較と優先順位15分
06. 三項演算子15分
07. つくる:予算チェック15分
08. 第3章クイズ10分
4
条件分岐
01. if文の基本15分
02. if / elif / else15分
03. 条件の組み合わせ15分
04. match文15分
05. 定番:FizzBuzz判定15分
06. デフォルト値とor15分
07. つくる:カテゴリ自動判定15分
08. 第4章クイズ10分
5
ループ
01. forで合計15分
02. whileで繰り返す15分
03. rangeとstep15分
04. breakとcontinue15分
05. enumerateで番号付け15分
06. zipで組み合わせ15分
07. 入れ子ループ15分
08. つくる:何件でも記録15分
09. 第5章クイズ10分
6
関数
01. 関数を定義する15分
02. 引数と戻り値15分
03. デフォルト引数15分
04. キーワード引数15分
05. 複数の戻り値15分
06. divmod15分
07. 変数のスコープ15分
08. lambda関数15分
09. つくる:関数に分割15分
10. 第6章クイズ10分
7
リストと辞書
01. リストの追加と削除15分
02. スライス15分
03. 辞書の基本15分
04. 辞書を走査15分
05. keyでソート15分
06. setで重複除去15分
07. リスト内包表記15分
08. タプルアンパック15分
09. つくる:カテゴリ別集計15分
10. 第7章クイズ10分
8
ファイルとエラー処理
01. ファイルを読み込む15分
02. ファイルに書き込む15分
03. withで安全に扱う15分
04. CSV形式で保存15分
05. try-exceptで備える15分
06. 例外の種類15分
07. つくる:保存機能15分
08. 第8章クイズ10分
9
総合制作
01. 全機能を統合しよう15分
02. 月間レポート機能15分
03. 自由拡張15分
04. 完成と次のステップ10分

変数

変数と再代入

同じ 1 行を 2 回書きたくない

りんご 120円 という 1 行を、レシートの本文と控えの両方に出したいとします。ここまでの道具だと、組み立てる式を 2 回書くことになります。金額を直したくなったら 2 か所とも直さなければいけません。

そこで 変数 を使います。値に名前を付けて、あとから何度でも呼び出せるようにするしくみです。イコール = の左に名前、右に入れたい値を書きます。

Python

store = "コンビニ" print(store + " で買いました") print("次も " + store + " に行きます")

store と書くだけで "コンビニ" が取り出せます。書いたのは 1 回、使ったのは 2 回です。店名を変えたくなっても、直すのは 1 行目だけで済みます。

解説

同じ値を 2 回書いたら、変数にする合図です。3 回目が来る前に名前を付けておきます。

イコールは「等しい」ではない

数学のイコールとは意味が違います。= は「右の値を左の名前に入れる」という命令です。右側が先に全部計算されてから、その結果が左の名前に入ります。

Python

tax = 1.1 total = 1000 * tax

2 行目では、右側の掛け算が先に済んで結果ができ、それが total に入ります。あとから別の値を入れ直すこともでき、その場合は前の値が上書きされて消えます。上から順に実行されるという規則が、ここでも効いています。

= が「入れる」の記号だからこそ、count = count + 1 のような、数学ではありえない書き方が成立します。

名前の付け方

名前は自由に決められますが、規則がいくつかあります。使えるのは半角英数字と _ だけで、数字から始めることはできません。大文字と小文字は区別されるので name と Name は別の変数です。print のような Python の予約語も使えません。

単語をつなぐときは _ を使い、小文字で書くのが Python の慣習です。a や x ではなく、中身が分かる名前を付けてください。

入れる前に使うと NameError になります。名前を打ち間違えた場合は、別の変数を新しく作ったことになるので、エラーが出ないまま結果だけ狂うこともあります。

やってみよう

関数 label_with_vars を実装してください。引数は品名 name と金額の文字列 price_text の 2 つです。

まず単位の "円" を変数 unit に入れ、name と price_text と unit をつないだ 1 行を変数 label に入れます。そのうえで、label と、label に " を記録しました" を足したものを \n でつないだ文字列を返します。

label_with_vars("りんご", "120") の戻り値は下記の 2 行です。

Python

りんご 120円 りんご 120円 を記録しました

組み立てる式を 2 回書かないことが、この回の要点です。1 回だけ組み立てて、それを 2 回使ってください。

要件

  1. 関数名は label_with_vars で、引数は name と price_text の2つ
  2. 変数 unit に "円" を入れ、変数 label に name と price_text と unit をつないだ1行を入れる
  3. 1行目は label、2行目は label に " を記録しました" を足したもの
  4. 2つの行は \n でつなぎ、末尾に改行は付けない

入出力例

label_with_vars("りんご", "120") → "りんご 120円 りんご 120円 を記録しました" label_with_vars("牛乳", "198") → "牛乳 198円 牛乳 198円 を記録しました" label_with_vars("ノート", "0") → "ノート 0円 ノート 0円 を記録しました" label_with_vars("チョコレートアイス", "1200") → "チョコレートアイス 1200円 チョコレートアイス 1200円 を記録しました" label_with_vars("", "50") → " 50円 50円 を記録しました"

ヒント

label = name + " " + price_text + unit の形で1行を組み立てます

組み立てた label は何度でも使い回せます。同じ式を2回書く必要はありません

戻り値は label + "\n" + label + " を記録しました" です

「を記録しました」の前には半角スペースが1つ入ります

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/05·更新 2026/08/26

関連レッスン

  • typeで型を調べる

    type で値の型を調べ、int / str / float の違いを型名の文字列で確かめる

  • 数値への変換

    int で金額の文字列を整数に変換し、計算できる形にする

  • 文字列への変換

    str で数値を文字列に変え、int の金額をレシートの1行に連結する

  • boolとNone

    True / False で2択を、None で未入力を表し、支払状態を型ごと確かめる

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 変数データに名前をつけて参照する仕組み
  • 関数処理に名前を付けて再利用できる単位
  • 引数位置引数=順番で渡す。
  • 戻り値呼び出し元への返答を表す点線矢印
main.py
学習モード
エディタを読み込んでいます

メモ

変数

⌘S で保存