第2回 プログラムの基本

コードを1行ずつ追ってみよう:変数と代入

今日の問い

x = 2
y = x + 3
x = y * 2
print(x)

最後に表示される値は何でしょうか。

すぐに実行せず、まず予想してみましょう。

コードは上から順に進む

x = 2          # 1番目
y = x + 3      # 2番目
x = y * 2      # 3番目
print(x)       # 4番目

原則として、一度に確認するのは1行です。

実行する行を確認する

最初に実行する行はどれでしょうか。

▶ x = 2
  y = x + 3
  x = y * 2
  print(x)

実行前は、xy もまだ定義されていません。

右辺を評価する

x = 2

まず右辺を見ます。

右辺の評価結果は 2 です。

まだ左辺の x は更新しません。

左辺の変数を更新する

右辺の評価結果 2 を、左辺の x に代入します。

x y
更新前 未定義 未定義
更新後 2 未定義

更新前と更新後を区別しましょう。

次の値を予想する

現在の状態は x = 2y は未定義です。

y = x + 3
  1. 右辺 x + 3 の値は?
  2. 実行後の y の値は?
  3. x の値は変わる?

答え合わせ

右辺は、現在の x = 2 を使って評価します。

x + 3
2 + 3
5

実行後は x = 2y = 5 です。

x には代入していないので、x は変わりません。

再代入を追う

x = y * 2

現在の y = 5 を使うと、右辺は 10 です。

左辺の x2 から 10 に更新します。

x = y * 2 は、数学の等式ではなく代入文です。

出力まで確認する

print(x)

現在の x10 です。

変数の値は変わらず、出力に 10 が追加されます。

自分で1行ずつ進めよう

現在行を実行した後の状態を入力し、「確認」で答え合わせをします。

振り返り

  1. 現在実行する行を確認する。
  2. 右辺を現在の値で評価する。
  3. 評価結果を左辺の変数に代入する。
  4. 更新前と更新後を比較する。

コードを変更したら、同じ手順でもう一度追ってみましょう。

プログラミング基礎(Python)の教材入口に戻る