ログアウト中 ログイン

学習パッケージを選択

【Python】Todoアプリ(メモリ版)作成講座 第1章1.2節「Todo検索・削除機能の作成」




現在の見出し:1.2節:Todo検索・削除機能の作成

見出し一覧

  • 1.2節:Todo検索・削除機能の作成
  • - in演算子による部分一致検索機能の実装
  • - pop()メソッドによる番号指定削除機能の実装

【PR】『Python』を学べる企業・個人向けのプログラミングコース

in演算子による部分一致検索機能の実装

第1章1.2節では、「in演算子による部分一致検索機能」と「pop()メソッドメソッドは特定の処理をまとめたプログラムの塊です。による番号指定削除機能」を実装していきます。

まず始めに、前のセクションで作成したコードを基盤として、Todo項目の検索機能を追加します。Todo項目が10件、20件と増加した際に、すべての項目を確認して目的の項目を探すのは非効率的です。そこで、ユーザーが入力したキーワードで絞り込む部分一致検索機能を実装することで、必要な項目を素早く見つけられるようになります。

検索機能の実装には、以下の3つの技術要素を組み合わせて使用します。

処理段階 使用技術 実装内容 結果
キーワード入力 input()関数関数は一定の処理をまとめたプログラムの塊です。 ユーザーから検索したい文字列文字列は文字の並びを表現するデータ型で、テキストデータを扱うための基本的な構造として広く使用されています。を受け取る 「勉強」「買い物」などのキーワード取得
項目確認 forfor文はプログラミングの繰り返し制御構文で、指定回数や条件に基づき特定コードを反復実行でき、コードの簡潔さと可読性を向上させます。文 + enumerate() Todo項目を番号付きで順次取得してループループは一連の命令を繰り返し実行する構造です。処理 「1. 買い物に行く」「2. 宿題をする」を順次確認
一致判定 in演算子 キーワードがTodo項目内に含まれるかを判定 「勉強」が「宿題をする」に含まれる場合はTrue
結果表示 条件分岐条件分岐はプログラム内で指定した条件によって処理の分岐を行う制御構造です。 + print() 該当項目の表示または「見つからない」メッセージ 該当する項目を番号付きで表示

まず、input()関数でユーザーから検索キーワードを文字列として受け取り、for文とenumerate()でTodo項目を番号付きで順次確認します。そして、in演算子を使用してキーワードがTodo項目内に含まれているかを判定し、該当する項目のみを表示する仕組みを構築します。

# コード
# Todo管理用のリストを初期化
todos = []

# サンプルデータを追加
todos.append("買い物に行く")
todos.append("宿題をする")

# ユーザーから新しいTodoを入力
content = input("Todo内容を入力: ")

# 入力されたTodoをリストに追加
todos.append(content)

# 追加完了メッセージを表示
print(f"'{content}' を追加しました")

# 番号付きTodo一覧を表示
print("\n=== Todo一覧 ===")
for i, todo in enumerate(todos, 1):
    print(f"{i}. {todo}")

# Todo項目数を表示
print(f"全{len(todos)}件のTodo")

# Todo検索機能を実装
keyword = input("\n検索キーワードを入力: ")
print(f"\n'{keyword}' を含むTodo:")
found = False

for i, todo in enumerate(todos, 1):
    if keyword in todo:
        print(f"{i}. {todo}")
        found = True

if not found:
    print("該当するTodoが見つかりませんでした")
# 実行結果
Todo内容を入力: プログラムの勉強
'プログラムの勉強' を追加しました

=== Todo一覧 ===
1. 買い物に行く
2. 宿題をする
3. プログラムの勉強
全3件のTodo

検索キーワードを入力: 勉強
'勉強' を含むTodo:
2. 宿題をする
3. プログラムの勉強
行数 種別 コード 解説
26行目 新規 keyword = input("\n検索キーワードを入力: ") ユーザーから検索したいキーワードを文字列として入力受付します
27行目 新規 print(f"\n'{keyword}' を含むTodo:") 検索結果のヘッダーとして入力されたキーワードを表示します
28行目 新規 found = False 検索結果が見つかったかを追跡するフラグ変数変数はデータを一時的に記憶しておく場所です。を初期化します
30行目 新規 for i, todo in enumerate(todos, 1): Todo項目を番号付きで順次取得するループ処理を開始します
31行目 新規 if keyword in todo: in演算子でキーワードがTodo項目内に含まれるかを判定します
32行目 新規 print(f"{i}. {todo}") 該当するTodo項目を番号付きで表示します
33行目 新規 found = True 検索結果が見つかったことをフラグ変数で記録します
35行目 新規 if not found: 検索結果が見つからなかった場合の条件判定を行います
36行目 新規 print("該当するTodoが見つかりませんでした") 検索結果が見つからない場合の適切なメッセージを表示します
pop()メソッドによる番号指定削除機能の実装

第1章1.2節「pop()メソッドによる番号指定削除機能の実装」の続きを見る


すべてのカリキュラムを無料登録で学ぶ

プログラミング・マーケティング・AI活用方法を
今すぐ無料登録すると、全てのコンテンツが視聴可能になります。