1. 食費は使えるカテゴリなので True
  2. その他も5種類に含まれるので True
  3. 交通費は使えるカテゴリなので True
  4. ごはんは5種類に無いので False
  5. 空文字はどれとも一致しないので False
  6. 交通 は部分一致であって要素ではないので False
コース一覧
Python入門:基礎文法編
in演算子

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分

in演算子

in 演算子で入っているか調べる

同じ形の or が 5 つ並ぶ

おこづかい帳で使うカテゴリは、食費、日用品、娯楽、交通費、その他の 5 種類と決めてあります。利用者が "ごはん" と打ってきたら受け取れないので、打たれた文字列が 5 種類のどれかかを判定したくなります。

or でも書けます。ただ、同じ形の比較を 5 回並べることになって、1 行がとんでもない長さになります。

Python

day = "水" print(day == "月" or day == "火" or day == "水")

3 つでもう長い。5 つ、10 個と増えたら手に負えません。この形をひとことで書くのが in です。

まとまりの中にあるか

in は「左の値が、右のまとまりの中にあるか」を True か False で返します。まとまりを作るには、角かっこ [ ] の中に値をカンマ区切りで並べます。

Python

days = ["月", "火", "水", "木", "金"] print("水" in days) print("日" in days) print("土" not in days)

True False True の順に出ます。含まれていないことを調べたいときは not in です。not x in y と書いても動きますが、not in のほうが英語として素直に読めます。

この [...] の形をリストと呼びます。変数に入れずに、in の右へその場で書いても構いません。

右がリストか文字列かで、意味が変わる

in は文字列に対しても働きます。この場合は「その文字列が含まれているか」を調べます。

Python

print("食" in "食費") print("食" in ["食費", "娯楽"])

上は True、下は False です。右が文字列なら 部分として 含まれるか、右がリストなら 要素として 一致するか、という別々の判定になります。"食" という要素はリストの中に無いので、"食費" の一部であっても False です。

左右を逆にすると意味が反転します。左が探す値、右が探される場所です。

やってみよう

関数 is_known_category を実装してください。引数は category の 1 つで、"食費" "日用品" "娯楽" "交通費" "その他" のどれかなら True、それ以外なら False を返します。判定には in を使ってください。

is_known_category("食費") は True、is_known_category("ごはん") は False、空文字の is_known_category("") も False です。

カテゴリ名は 1 文字でも違うと一致しません。"交通" や "交通 費" は別の文字列です。全角と半角、余分な空白に気をつけて写してください。or を 4 つ並べても同じ結果になりますが、いちど書いてみて長さの差を体感しておくと、in のありがたみが分かります。

要件

  1. 関数名は is_known_category で、引数は category の1つ
  2. カテゴリは "食費" "日用品" "娯楽" "交通費" "その他" の5種類とする
  3. 5種類のどれかなら True、それ以外は False を返す
  4. 判定には in を使う

入出力例

is_known_category("食費") → true is_known_category("その他") → true is_known_category("交通費") → true is_known_category("ごはん") → false is_known_category("") → false is_known_category("交通") → false

ヒント

return category in ["食費", "日用品", "娯楽", "交通費", "その他"] の1行で書けます

角かっこ [ ] の中にカンマ区切りで値を並べるとまとまりになります

in の左が探す値、右が探される場所です。左右を逆にしないでください

カテゴリ名は1文字でも違うと一致しません。コピーして貼るのが確実です

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

関連レッスン

  • 剰余と切り捨て除算

    // で商、% で余りを求め、割り勘の1人分と端数を計算する

  • 連鎖比較と優先順位

    0 <= price <= budget の連鎖比較と、演算子が計算される順番を整理する

  • 三項演算子

    A if 条件 else B で値を2択に切り替え、予算内かオーバーかのラベルを返す

  • つくる:予算チェック

    第3章の総仕上げ。合計と予算を比べて判定つきの3行を返す check_budget を作る

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

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

  • リスト順序付きで複数の値を扱うデータ構造
  • 変数データに名前をつけて参照する仕組み
  • 関数処理に名前を付けて再利用できる単位
  • 引数位置引数=順番で渡す。
main.py
学習モード
エディタを読み込んでいます

メモ

in演算子

⌘S で保存