情報・AIの特集を読む →

情報・AI · プログラム・アルゴリズム

プログラムを読む:値の変化と条件の順番を追う

プログラムを読むとき、行を目で追うだけでは途中の値を見失うことがあります。まず入力と現在の値を短く書き留め、一つの命令を実行するごとに更新してみましょう。どの行が実行されたかを説明できることが、結果の数字を当てるより大切です。

ここではPython 3の具体的な規則を使います。ほかの言語でも似た記号はありますが、まったく同じ意味とは限りません。代入、条件の選択、繰り返しの終了を分けると、小さなコードから処理のまとまりを理解しやすくなります。

このテーマのクイズへ

科目とテーマを選んだ開始画面へ進みます。出題方式・問数を確認してから始められます。

代入は式を永続的に結び付ける操作ではない

x=4の後にx=x+3を実行すると、右辺はその時点のxの値を使って計算され、結果を新たにxへ代入します。数学の等式のように、同じ値が永久に両側へ成立するという読み方とは違います。代入前と代入後の値を別々に記録して確かめましょう。

Pythonの=は代入、==は等値比較です。記号を一文字増やしただけでも仕事が変わります。コードの各行について、値を変えたのか、条件を調べたのかを一文で説明すると、比較と更新を混同しにくくなります。

条件は上から読むだけでなく選択を確定する

ifとelifの連なりでは、前の条件が真ならその分岐が選ばれ、後のelifを続けて選ぶわけではありません。xが8のとき、x>0を先に置けばそこで選択が決まります。x>5も数としては真だから両方を実行する、という理解はこの構造に合いません。

分類のルールを考えるときは、複数の条件に当てはまる入力を試すと順序の意味が見えます。互いに独立した二つのifと、if・elifの連なりは違う構造です。同じ条件文を含んでいても、まとまりを変えると結果が変わることがあります。

ループはどう終わったかまで読む

Pythonのforは並びの要素を順に扱います。breakはループを抜け、continueは現在の反復の残りを省いて次へ進みます。どちらも『途中を飛ばす』とだけ覚えると、どの範囲を飛ばしたかが分からなくなります。

ループに付くelseは、例外などなく通常終了し、breakしなかった場合に実行されます。検索で見つかったときbreakする設計なら、elseを見つからなかった場合の処理に使えます。単に最後へ到達したという見た目ではなく、終了の経路を確認してください。

TRY & READ

まずは例題で確かめる

選択肢を比べてから「答えと解説を読む」を開いてください。ここで読んだ例題は、テストの解答や成績として保存されません。

例題 1 · プログラム・アルゴリズム

Python 3で x=4; x=x+3 を順に実行した後、xは?

  1. 4
  2. 3
  3. 等式矛盾でエラー
  4. 7
答えと解説を読む

正解:7

右辺では代入前の4を使い、4+3の結果7を新たなxに代入します。

この例題の出典

  • 3. An Informal Introduction to Python — Python 3.14.8 documentation

    3.1.1 assignment; original trace; 3.1.2 immutable strings; 3.1.2 indexing; 3.1.2 slicing; original trace; 3.1.3 assignment aliasing; original trace; 3.1.3 len; 3.1.3 shallow slice copy; original trace; 3.2 comparisons; 3.2 indentation; 3.2 truth values of sequences; 3.2 while; 3.2 while; original trace; Introduction comments

    出典確認日:2026-10-05
  • 自作例の独立導出

    各IDの自作例を逐次追跡した導出。外部事実は別referenceを使用。

    出典確認日:2026-10-05 · 独自作成・導出の記録

例題 2 · プログラム・アルゴリズム

Python 3で x=8。if x>0: r='P'、elif x>5: r='Q'、else: r='R' と分岐したときrは?

  1. 'P'
  2. 'Q'
  3. 'R'
  4. 'PQ'
答えと解説を読む

正解:'P'

ifが真なのでそこで選択が決まり、後のelifは実行しません。条件の順序が意味を変えます。

この例題の出典

  • 4. More Control Flow Tools — Python 3.14.8 documentation

    4.1 if; 4.1 if elif; original trace; 4.2 for; 4.2 for; original reset-location trace; 4.2 modifying collections; original trace; 4.3 range; 4.4 break; 4.4 continue; 4.5 else clauses on loops; 4.6 pass; 4.8 defining functions; 4.8 implicit None; 4.8 local symbol table; original trace; 4.8 recursion; original termination; 4.8 return; 4.9.1 in membership; 4.9.1 mutable defaults; original trace; 4.9.2 keyword arguments; 4.9.7 documentation strings

    出典確認日:2026-10-05
  • 自作例の独立導出

    各IDの自作例を逐次追跡した導出。外部事実は別referenceを使用。

    出典確認日:2026-10-05 · 独自作成・導出の記録

例題 3 · プログラム・アルゴリズム

Python 3のforループに付くelseは、例外等なく通常終了する時、いつ実行される?

  1. 必ずbreakで抜けた時だけ
  2. 毎回本体の前
  3. 最初の要素が必ず0の時だけ
  4. breakで抜けず反復を終えた時(空の反復も含む)
答えと解説を読む

正解:breakで抜けず反復を終えた時(空の反復も含む)

ループのelseはbreakがなかった完走に対応します。検索で一致時にbreakすれば、不一致時の処理に使えます。

この例題の出典

  • 4. More Control Flow Tools — Python 3.14.8 documentation

    4.1 if; 4.1 if elif; original trace; 4.2 for; 4.2 for; original reset-location trace; 4.2 modifying collections; original trace; 4.3 range; 4.4 break; 4.4 continue; 4.5 else clauses on loops; 4.6 pass; 4.8 defining functions; 4.8 implicit None; 4.8 local symbol table; original trace; 4.8 recursion; original termination; 4.8 return; 4.9.1 in membership; 4.9.1 mutable defaults; original trace; 4.9.2 keyword arguments; 4.9.7 documentation strings

    出典確認日:2026-10-05

この特集の出典

クイズで続けてみる

このテーマの範囲は「プログラム・アルゴリズム」。範囲は「身近な知識・知識を広げる・幅広い教養」、難しさは「基礎・標準」を最初に選びます。開始画面で条件を変更できます。

このテーマのクイズへ

テストは提出後に解説を確認できます。連続チャレンジは回答ごとに解説、復習はこの端末で記録された未解消の誤答が対象です。ひまつぶしは学習記録を更新せずに取り組めます。

気に入ったら、リンクをシェア

共有するのはこのページのアドレスだけです。保存データや成績は含みません。

このページのリンク