0コメント

京都大学の演習教材に学ぶPython基礎。変数と演算のメカニズムを本質から理解する

【Python入門】変数・代入・演算の基本を徹底解説!京大教材ベースの決定版

🚀 【Python入門】変数・代入・演算の基本を徹底解説!京大教材ベースの決定版

プログラミングの基本は、たった3つ。「実行の流れ」「情報の流れ(変数)」「型」を理解することです。本記事では、京都大学の演習教材をベースに、初心者の方でも120%理解できるよう分かりやすく解説します!



💡 本記事でマスターする重要キーワード

プログラミングを学ぶ上で、言葉の意味を正しく理解することは「地図」を持つことと同じです。本セクションでは、学習をスムーズに進めるための最重要用語をピックアップしました。

順次実行
プログラムが上から下へと順番に処理される最も基本的なルール。
代入(=)
「等しい」ではなく、右辺の結果を左辺の変数に「格納」すること。
評価
式や変数を計算して、具体的な「値」を導き出すプロセスのこと。
データ型
整数(int)や文字列(str)など、値の種類。Pythonが自動で判別します。
リテラル
ソースコード内に直接書き込まれた「100」や「"Hello"」などの値そのもの。
アルゴリズム
問題を解決するための手順。今回は平方根を求める手順を紹介します。


🖨️ 印刷して机に貼ろう!

✅ Python 基礎習得チェックリスト

📍 変数の命名ルール

  • 英小文字、数字、_ を使っているか?
  • 数字が先頭になっていないか?
  • 予約語(ifなど)を避けているか?
  • 紛らわしい l, o, O を使っていないか?
  • 意味が伝わる名前(priceなど)か?

📍 演算・動作の確認

  • = は「右を計算して左に入れる」!
  • 割り算のとき「0」で割っていないか?
  • 文字列は ' '" " で囲ったか?
  • 大文字・小文字の間違いはないか?
  • 代入後の変数の「型」を意識したか?

📊 主要データ型・早見表

int: 整数 (100) float: 小数 (3.14) str: 文字 ("ABC") bool: 真偽 (True)
参考:京都大学プログラミング演習 Python 2021(KURENAI)


1. プログラムが動く仕組み:2つの「流れ」🌀

① 実行の流れ(順次実行)

プログラムは、「上から下へ、1行ずつ」順番に実行されます。これを「順次実行」と呼びます。楽譜を左から順に弾いていく感覚に似ていますね。🎼

② 情報の流れ(変数のバケツリレー)

一方、データは「変数」という名前の付いた箱(またはバケツ)に入れられ、プログラムの間を移動します。前の行で計算した結果を、次の行で使う。このデータの受け渡しが「情報の流れ」です。

💡 ここがポイント!
「実行の流れ」は目に見えやすいですが、「情報の流れ」は変数の中身を意識しないと見失いがちです。「今、この変数には何が入っているか?」を常に意識しましょう。

2. 変数(Variable)の命名ルールと作法 🏷️

変数名は自由に付けられますが、いくつかルールと「美しく書くためのマナー」があります。

  • 使える文字: 英数字とアンダースコア `_`
  • NG: 数字から始まる名前(例:`1st_price` はダメ)
  • ⚠️ 区別: 大文字と小文字は別人として扱われます(`a` と `A` は別物)
  • 🚩 予約語: `if` や `print` などPythonが既に使っている言葉は避ける
事例:現場での変数名
`x` や `y` ではなく、`user_age` や `total_price` のように「中身が誰にでもわかる名前」を付けるのがプロの技です。

3. 代入と評価の真実 ⚡

プログラミングの世界では、a = a + 1 は「等式」ではありません!

a = 10
a = a + 5 # 「今のa(10)に5を足して、またaに戻せ!」という意味
print(a) # 結果は 15

このように、右辺を計算すること(評価)が先に行われ、その結果を左辺に書き込む(代入)というステップを踏んでいます。

4. Pythonのデータ型一覧 📋

Pythonは、変数に入れるデータの種類(型)を自動で判断してくれます。

型名 種類 特徴
int 整数 123 桁数に制限がなく、巨大な計算もOK!
float 浮動小数点数 3.14 小数を扱う。内部的に2進数なので微小な誤差が出ることも。
str 文字列 "Hello" ' ' や " " で囲みます。
bool 論理値 True / False 「YESかNOか」の条件判断に使います。

5. 【応用】平方根を求める(ニュートン法)🍏

教材でも紹介されている「平方根(√)」を求めるアルゴリズムは、実は「代入」と「繰り返し」の究極の活用例です。

具体的な使用状況:
ゲーム開発でキャラクター同士の距離を計算したり、データ分析で統計量を算出したりする際、この平方根の計算は裏側で頻繁に使われています。Pythonでは通常 2**0.5math.sqrt() を使いますが、その基本ロジックを学ぶことはアルゴリズム理解の助けになります。

🌟 まとめ:これだけは覚えよう!

  1. 順次実行: プログラムは上から下へ進む!
  2. 代入(=): 右側を計算してから、左側の箱に入れる!
  3. 型(Type): 整数(int)、小数(float)、文字(str)の違いを意識する!
  4. 命名: 自分が3ヶ月後に見ても意味がわかる名前を付ける!

【参考・引用元】
本記事は、京都大学プログラミング演習 Python 2021(喜多一教授 他)の内容を元に再構成しています。
出典:京都大学学術情報リポジトリ「KURENAI」



📐 実践:平方根を求める「ニュートン法」

「順次実行」と「変数の代入」を組み合わせた強力な例として、数値計算の王道であるニュートン法を紹介します。コンピュータがどうやって $\sqrt{2}$ のような複雑な値を一瞬で計算しているのか、その仕組みをコードで体験しましょう。

図:平均をとることで真の値へ近づくイメージ

1. 計算のアイデア

ある数 $x$ の平方根を求めたいとき:
今の近似値($r1$)と、もう一つの候補($x / r1$)の「平均」を計算すると、より正確な近似値が得られるという性質を利用します。

2. 実装コード(Python)

# xの平方根を求める
x = 2
rnew = x # 初期値

# 同じ処理を4回繰り返して精度を高める(順次実行)
r1 = rnew
r2 = x / r1
rnew = (r1 + r2) / 2
print(r1, rnew, r2)

r1 = rnew
r2 = x / r1
rnew = (r1 + r2) / 2
print(r1, rnew, r2) # ...これを繰り返す
🚨 ここに注意!:0除算のワナ

もし x = 0 で実行すると、r2 = x / r10除算エラー が発生します。実務のプログラムでは、このように「分母が0にならないか」を常に意識することがバグを防ぐ鍵となります。

出典:京都大学プログラミング演習 Python 2021(KURENAI)



⚠️ 勘違い注意!一問一答チェックテスト

全問正解できれば基礎は完璧!クリック(またはタップ)で解説が表示されます。

Q1. 「a = a + 1」という式は、数学的に正しくないのでエラーになる?

答え:×(エラーにならない)

プログラミングの = は「代入」です。「右辺の結果を計算して、左辺の変数に入れる」という意味なので、現在のaの値に1を足して更新する、非常に一般的な書き方です。

Q2. 変数名に「2nd_price」という名前を使っても良い?

答え:×(使えない)

変数の命名ルールとして、「数字を先頭にしてはいけない」という決まりがあります。price_2nd ならOKです!

Q3. kakaku = 100 と定義したとき、print(Kakaku) で表示できる?

答え:×(表示できない)

Pythonは大文字と小文字を厳密に区別します。kakakuKakaku は別の名前として扱われるため、NameError(定義されていない名前)になります。

Q4. Pythonには「++(インクリメント)」演算子がある?

答え:×(存在しない)

C言語やJavaにある a++ はPythonにはありません。代わりに a += 1 と書くのが正解です。

Q5. 整数(int)のデータ型には、扱える桁数に制限がある?

答え:×(事実上制限なし)

Pythonの素晴らしい点の一つは、メモリが許す限り整数の桁数に制限がないことです。非常に大きな数値の計算も正確に行えます(※小数は誤差が出るので別です)。



🎓 さらなる高みへ:周辺知識と背景の深掘り

お疲れ様でした!「変数」と「演算」の基本をマスターしたあなたは、コンピュータと対話するための基礎体力を手に入れました。最後に、今回学んだことの背景にある、少しだけ高度で興味深いトピックをご紹介します。

📍 1. なぜ「型」を意識する必要があるのか?

Pythonは「動的型付け」という性質を持ち、実行時に型を自動判断してくれます。しかし、銀行のシステムのように1円の誤差も許されない現場では、浮動小数点数(float)の計算誤差が大きな問題になることもあります。型を知ることは、コンピュータが数字をどう見ているかを知ることなのです。

📍 2. ニュートン法と現代社会

平方根の近似計算で触れた「ニュートン法」は、300年以上前に考案されたアルゴリズムです。驚くべきことに、現代のAI(人工知能)や気象シミュレーション、物理演算エンジンの中でも、この「今の値から、より正しい値を予測し続ける」という考え方が進化して使われ続けています。

📍 3. 「読みやすいコード」が最強のスキル

京大の教材でも触れられている「PEP 8」というコーディング規約。実は、プロのエンジニアが最も時間を費やすのは「コードを書くこと」ではなく「他人が書いたコードを読むこと」です。適切な変数名を付け、適切な空白を入れる習慣は、将来あなたを救う強力な武器になります。

✨ プログラミングは「魔法の杖」ではなく、論理の積み重ねです。
この一歩が、あなたの世界を広げる大きな転換点になることを願っています。



📖 教材全カバー:Python基礎・完全用語辞典

京都大学の演習教材に登場するすべての概念を網羅しました。学習の振り返りや、エラーが出た際の確認に活用してください。

順次実行

プログラムがソースコードの上から下へ向かって順番に処理されること。分岐や繰り返しがない場合の基本動作です。

ソースコード

人間が理解できるようにプログラミング言語(Pythonなど)で書かれたテキストファイルのこと。

変数 (Variable)

情報に名前をつけて保存する仕組み。「情報の流れ」を管理するための重要な要素です。

予約語

ifTrue など、Pythonが既に役割を与えているため、変数名として使用できない特別な単語。

アンダースコア ( _ )

変数名に使える記号。street_name のように、複数の単語を繋ぐ際によく使われます。

代入 (Assignment)

代入演算子(=)を使って、変数に値を保存すること。既存の値は新しい値で上書きされます。

評価 (Evaluation)

式や変数を計算して、具体的なデータ(オブジェクト)を得ること。

複合代入演算子 (+=, -=, *=, /=)

a = a + ba += b と短縮して書く方法。値を一定数増減させる際によく使われます。

多重代入

a, b = 1, 2 のように、一度に複数の変数へ値を代入すること。変数の値を入れ替える際にも便利です。

データ型 / オブジェクト

データの種類の分類。Pythonではあらゆるデータが「オブジェクト」として扱われます。

整数 (int) / 浮動小数点数 (float)

数値の種類。整数は桁数無制限。浮動小数点数は小数を含み、E記法(10のn乗)も使えます。

文字列 (str)

文字の並び。シングルクォート(')またはダブルクォート(")で囲んで表現します。

論理値 (bool)

True(真)と False(偽)の2つの値。条件判断に用いられます。

参照

変数がデータそのものを持つのではなく、データが「どこにあるか」という所在情報を持っている仕組み。

type() / id() 関数

型を調べるのが type()、データの所在(識別番号)を調べるのが id() です。

0除算 (Zero Division)

数値を0で割ろうとすること。Pythonでは ZeroDivisionError というエラーが発生します。

ニュートン法

近似計算の手法。平均をとる操作を繰り返すことで、平方根などの値を真の値に近づけます。



この記事へのコメント