C
Python/入門/Lesson 02

Pythonの紹介

30分·theory
このチャプター
1/7
Python

Pythonの紹介

🎯 このlessonを読み終えたら

このlessonを読み終えると、以下の3つを自信を持ってできるようになります。

  • ✅ PythonがなぜAI・データの標準言語になったのか
  • ✅ Python 3.x基準のvenv + requirements.txtのセットアップ
  • ✅ print / input / type / dirの4つの組み込み関数

学習目標をチェックリストとして持ち、すべてに答えられるようになったらlessonを閉じてください。

Python文法 — 5分まとめ

Pythonは読みやすいプログラミング言語です。「ほぼ自然言語のように短い」というのが核心です。

各サンプルは コード → 実行結果 → 解説 の順で確認します。



0. Pythonの基本データ型 — 一覧表

Pythonのすべてのプログラムは「値」で作られます。よく使う6種類を先に覚えておきましょう。

表記使いどころ
int整数28, -3, 0数値のデフォルト。ほぼこれで対応。
float実数3.14, 175.5小数点のある数値。
str文字列"Hong", 'hi'文字。引用符が必須。
bool真偽値True, False条件の結果。大文字始まりに注意
listリスト[1, 2, 3]順序ありのコレクション。変更可能。
dict辞書{"name": "Hong"}key→valueのマッピング。名前で検索。

結論: 最初は int · float · str · bool の4つだけ知っていれば十分です。list · dict はデータ構造のセクションで扱います。

Javaとの決定的な違い — Pythonは型宣言が不要です:

java
// Java — 型宣言が必須
int age = 28;
String name = "Hong";
python
# Python — 値から自動判断
age = 28        # int として自動認識
name = "Hong"   # str として自動認識

これが「Pythonが短い」理由その1です。


1. 変数 — 名前に値を格納する

python
name = "Hong Gil-dong"  # 引用符で囲む → 文字列 (string)
age = 28                # 引用符なし → 数値 (int)
height = 175.5          # 小数点あり → 実数 (float)
student = True          # 真偽値 (bool)

= は「右辺の値を左辺の変数に代入する」という意味で、数学の等号とは異なります。
Javaとの違い: String name のような型宣言は不要 — Pythonが自動的に判断します。


2. 出力 print() — 画面に表示する

python
print("Hello!")
print("Name:", name)
print(f"{name} is {age} years old")

実行結果:

code
Hello!
Name: Hong Gil-dong
Hong Gil-dong is 28 years old

f"..."f-string{} の中に変数を埋め込むモダンな書き方です (Python 3.6+)。


3. 入力 input() — ユーザーから受け取る

python
name = input("Your name? ")  # ユーザーが入力してEnterキー
print(f"Nice to meet you, {name}!")

ターミナルの動作:

code
Your name? Hong Gil-dong      ← ユーザー入力
Nice to meet you, Hong Gil-dong!  ← プログラム出力

⚠️ input()常に文字列(string)として返します。数値が必要な場合は int(input(...)) で変換してください。


4. コロン : + インデント — Pythonの「ブロック」表記

条件分岐・ループ・関数に入る前に、Python独自のブロック表記法を理解しておく必要があります。

Javaは波括弧 { }、Pythonはコロン : + スペース4つのインデント:

java
// Java
if (condition) {
    System.out.println("true");
}
python
# Python
if condition:         # ← コロン必須
    print("true")     # ← インデント4つ = ブロック内

次のキーワードの後には必ずコロンが必要:

python
if condition:          # if / elif / else の後
for i in range(5):     # for / while の後
def greet():           # def (関数) の後
class Person:          # class の後
try:                   # try / except / finally の後

コロンを忘れるとSyntaxErrorになります:

python
if score >= 90    # ❌ コロンなし → SyntaxError: expected ':'
    print("A")

コロンは「左:右のペア」を表すためにも使われます:

python
person = {"name": "Hong"}   # dict — key:value
numbers[1:4]                 # スライシング — 開始:終了
def add(a: int) -> int:      # 型ヒント — 変数:型

→ コロンは「次の行からブロック」または「左:右のペア」を示すシグナルです。


5. 条件分岐 if·elif·else — 分岐

python
score = 85

if score >= 90:
    print("A")
elif score >= 80:        # else if = elif (省略形)
    print("B")
else:
    print("C")

実行結果: B (85は80以上なので2番目の分岐に入る)

主なルール:

  • 波括弧 { } なし — インデント4つでブロックを区別
  • if 行の末尾に : コロンが必須
  • == (等しい) / != (等しくない) / >= (以上) / <= (以下)

6. ループ for·while

python
# range — 数値を反復
for i in range(1, 6):    # 1, 2, 3, 4, 5 (6は含まない!)
    print(i)

実行結果: 1

2

3

4

5 (各行)

python
# リストの反復
fruits = ["apple", "pear", "persimmon"]
for fruit in fruits:
    print(f"one bite of {fruit}")

実行結果:

code
one bite of apple
one bite of pear
one bite of persimmon

⚠️ range(1, 6) は1から6の直前まで (5まで)。Pythonでよくある落とし穴です。


7. 関数 def — 同じ処理を何度も使う

python
def greet(name):               # def 関数名(引数):
    return f"Hello {name}"     # 結果を返す

# 呼び出し
message = greet("Hong Gil-dong")
print(message)

実行結果: Hello Hong Gil-dong

文法の分解:

  • def = define (定義) の略
  • (name) = 受け取る値 (引数)。複数の場合は (name, age)
  • return = 呼び出し元に結果を返す。省略すると None
  • 関数の呼び出しは 関数名(値)() を忘れると関数オブジェクト自体を参照する

8. データ構造4種類

python
# ─ リスト (list) — 順序あり、変更可能
numbers = [1, 2, 3]
numbers.append(4)        # 末尾に追加
print(numbers)

実行結果: [1, 2, 3, 4]

python
# ─ タプル (tuple) — 順序あり、変更不可 (ロック)
coords = (37.5, 127.0)
print(coords[0])          # 最初の要素 = 37.5

実行結果: 37.5

python
# ─ 辞書 (dict) — key:value
person = {"name": "Hong Gil-dong", "age": 28}
print(person["name"])
person["job"] = "developer"  # 追加
print(person)

実行結果:

code
Hong Gil-dong
{'name': 'Hong Gil-dong', 'age': 28, 'job': 'developer'}
python
# ─ セット (set) — 重複を自動削除
tags = {"python", "ai", "python"}
print(tags)

実行結果: {'python', 'ai'} (重複した'python'が削除される)

使い分け:

  • 順序重要 + 変更あり → list
  • 順序重要 + 変更なし → tuple
  • 名前で検索 → dict
  • 重複削除 → set

9. クラス class — オブジェクトを作る

python
class Person:
    def __init__(self, name, age):    # コンストラクタ — オブジェクト生成時に呼ばれる
        self.name = name               # self = オブジェクト自身
        self.age = age

    def greet(self):
        print(f"Hi, I'm {self.name} ({self.age} years old)")

# オブジェクト生成 + メソッド呼び出し
hong = Person("Hong Gil-dong", 28)
hong.greet()

実行結果: Hi, I'm Hong Gil-dong (28 years old)

重要な概念:

  • __init__ = オブジェクトが最初に作られるときに自動的に呼ばれる (Javaのコンストラクタに相当)
  • self = そのオブジェクト自身 (Javaの this に相当)。すべてのメソッドの第1引数として必須
  • Person("Hong Gil-dong", 28) の呼び出しで __init__ が自動実行される

一行まとめ

パターンキーワード
変数= (型宣言なし)
出力print()
入力input() (文字列のみ)
分岐if·elif·else (インデント + :)
ループfor in range() / for in list
関数def 名前(引数): return 値
データlist·tuple·dict·set
オブジェクトclass + __init__ + self

この8つのパターンがPythonの90%を占めています。

🐍 実際に実行してみよう — Python紹介

上記の概念を実際のコードとして実行してみてください。値を変えながら動作を自分で確認するのが最も効果的な学習方法です。
✏️ Python 코드
📟 コンソール出力
▶ 実行ボタンを押してください
🐍 Pyodideで実際のPythonを実行 — 初回は読み込みに3〜5秒

🤖 AIにこう依頼してみよう

このlessonの概念を知っていれば、AIに具体的に指示できます。曖昧な「直して」ではなく、語彙を持った依頼 — それがトークン節約の出発点です。

  • 「このPythonコードにPython紹介の概念を適用して」
  • 「このコードに型ヒント + pytestの単体テストを追加して」
  • 「Python紹介に関連するPEP 8違反を確認して」

なぜこれがトークンを削減するのか

概念を知らないと、AIの回答を受け取っても「それは何ですか?」と再度聞かなければなりません。その「再質問」がトークンを消費します。概念を一度習得すれば、会話が一回で完結します。

先に読むとよい概念: Python 完全マスター
次のおすすめ: データ型 (Data Types)
Pythonとは? - Python