2.1.1 Python の概要

この節の位置づけ
この節は、Python 学習の入り口です。いきなり複雑な文法を覚える必要はありません。まずは、Python がなぜ AI に向いているのか、何ができるのかを理解し、最初のプログラムを実際に動かして、「コードで現実の問題を解決できる」という最初の実感をつかみましょう。
学習目標
- Python とは何か、なぜこれほど人気なのかを理解する
- AI 分野での Python の中心的な役割を理解する
- あなたの最初の Python プログラムを書いて実行する
- Python コードの基本構造を理解する
なぜ Python を学ぶのか?
プログラミング言語が道具だとしたら、Python はスイスアーミーナイフのようなものです。何でもできて、しかもすぐ使い始められます。
まずは、いくつかのデータを見てみましょう。
| 観点 | 説明 |
|---|---|
| 人気度 | 長年にわたり TIOBE のプログラミング言語ランキングで 1 位を維持 |
| AI の第一選択 | ほぼすべての AI / 機械学習フレームワーク(PyTorch、TensorFlow)が Python を中心に使っている |
| 就職市場 | データサイエンス、AI エンジニア、バックエンド開発の必須スキル |
| 学習のしやすさ | 文法が自然言語に近く、初心者でも始めやすい言語のひとつ |
一言でまとめると、AI をやりたいなら、Python が唯一の出発点です。
Python とは何か?
Python は、Guido van Rossum(グイド・ヴァンロッサム)によって 1991 年に公開された高水準プログラミング言語です。
「高水準」とはどういう意味でしょうか?
プログラミング言語がハードウェアから離れていて、人間の言葉に近いほど「高水準」です。比べてみましょう。
# 機械語(2進数、コンピュータが直接実行する)
10110000 01100001
# C 言語(多くの細かい部分を手動で管理する必要がある)
#include <stdio.h>
int main() {
printf("Hello World\n");
return 0;
}
# Python(シンプルでわかりやすい)
print("Hello World")
同じ「1 文を表示する」処理でも、Python は 1 行で済みますが、C 言語では 5 行必要です。これが Python の設計思想です。シンプルで洗練されており、文法の細かさではなく問題解決に集中できるようになっています。
Python の主な特徴
| 特徴 | 説明 | あなたにとっての利点 |
|---|---|---|
| 文法がシンプル | 波かっこではなくインデントを使い、英語に近い書き方 | 早く学べて、書く量も少ない |
| インタプリタ言語 | 書いたらすぐ実行でき、コンパイルが不要 | デバッグしやすく、すぐ結果が見える |
| 動的型付け | 変数の型宣言が不要 | コードが短く、柔軟 |
| エコシステムが豊富 | 40 万以上のサードパーティライブラリがある | 誰かが作った便利なものをすぐ使える |
| マルチプラットフォーム | Windows、macOS、Linux で動く | 1 つのコードをいろいろな環境で実行できる |
Python で何ができるのか?
Python の活用範囲はとても広いです。ここでは、特に重要な分野をいくつか見てみましょう。
AI と機械学習(このコースの中心)
Colab や Jupyter で以下のコードを実行する前に、まずインストールしてください(1 回だけで OK):
!pip install scikit-learn
ローカルのターミナルや Conda 環境では次を使います: pip install scikit-learn
# 数行でシンプルな線形回帰モデルを学習する(サンプルデータ、直接実行できます)
import numpy as np
from sklearn.linear_model import LinearRegression
X_train = np.array([[1], [2], [3], [4], [5]]) # 特徴量
y_train = np.array([2, 4, 6, 8, 10]) # ラベル(y ≈ 2*x)
model = LinearRegression()
model.fit(X_train, y_train)
# 学習後は model.predict() で予測できます
主なフレームワーク: PyTorch、TensorFlow、scikit-learn、Hugging Face Transformers
データ分析と可視化
import pandas as pd
import matplotlib.pyplot as plt
# サンプルデータ(実際のプロジェクトでは pd.read_csv("sales.csv") で自分のファイルを読み込めます)
data = pd.DataFrame({"month": ["1月", "2月", "3月"], "revenue": [100, 150, 120]})
# 1 行でグラフを描画
data.plot(x="month", y="revenue", kind="bar")
plt.show()
主なライブラリ: pandas、NumPy、Matplotlib、Seaborn
Web バックエンド開発
Python を使うと、API を提供する Web バックエンドをすばやく作れます。たとえば次のようになります。
from fastapi import FastAPI
app = FastAPI()
@app.get("/hello")
def say_hello():
return {"message": "こんにちは、世界!"}
サービスを起動してアクセスする:
- まず上のコードをファイル(例:
main.py)として保存し、ターミナルでそのディレクトリに移動して次を実行します。pip install fastapi uvicorn
uvicorn main:app --reload - ターミナルに
Uvicorn running on http://127.0.0.1:8000と表示されたら、ブラウザで次を開きます。- http://127.0.0.1:8000/hello →
{"message":"こんにちは、世界!"}が返ります - http://127.0.0.1:8000/docs → 自動生成された API ドキュメントページ。ここからそのまま試せます
- http://127.0.0.1:8000/hello →
主なフレームワーク: FastAPI、Django、Flask
自動化スクリプト
import os
# 例: フォルダ内の画像を一括リネームする(まずテスト用ディレクトリを作ってから実行し、FileNotFoundError を避けましょう)
os.makedirs("photos", exist_ok=True)
for i in range(3):
open(f"photos/old_{i}.jpg", "w").close() # 3 つの空ファイルを作って例にする
for i, filename in enumerate(os.listdir("photos/")):
new_name = f"photo_{i+1}.jpg"
os.rename(f"photos/{filename}", f"photos/{new_name}")
# 結果を確認(実際のプロジェクトではテスト用ディレクトリを削除してもよい: os.removedirs など)
print(os.listdir("photos/")) # ['photo_1.jpg', 'photo_2.jpg', 'photo_3.jpg']
Web スクレイピング
# 先にインストール: !pip install beautifulsoup4
from bs4 import BeautifulSoup
# サンプル HTML を使って解析を示す(外部ネットワークに依存せず、直接実行できます)
html = """
<html><body>
<h1>Python を学ぼう</h1>
<p>1 つ目の段落</p>
<p>2 つ目の段落</p>
</body></html>
"""
soup = BeautifulSoup(html, "html.parser")
title = soup.find("h1").text
paragraphs = soup.find_all("p")
print(f"Web ページのタイトル: {title}")
print(f"段落の数: {len(paragraphs)} 個")
最初の Python プログラムを書こう
方法 1: ターミナルで Python の対話モードを使う
ターミナルを開いて(第 1 ステップで学びました)、次を入力します。
python
次のようなプロンプトが表示されます。
Python 3.11.5 (main, Sep 11 2023, 08:31:25)
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> は Python の対話プロンプトで、コマンド入力を待っていることを意味します。
次を試してみましょう。
>>> print("Hello, World!")
Hello, World!
>>> 1 + 1
2
>>> "AI" * 3
'AIAIAI'
>>> len("Python")
6
対話モードを終了するには、exit() を入力するか、Ctrl+D を押します。
対話モードはすぐに試したいときにとても便利です。たとえば、ある関数の使い方がよくわからないときに、まず対話モードで試してみて、問題なければファイルに書く、という使い方ができます。
方法 2: VS Code で書いて実行する
- VS Code を開きます(第 1 ステップですでにインストール済み)
- 新しいファイル
hello.pyを作成します(拡張子が.pyであることに注意) - 次のコードを入力します。
# これが私の最初の Python プログラムです
print("Hello, World!")
print("私は Python を学んでいます!")
print("1 + 1 =", 1 + 1)
- ファイルを保存します(
Ctrl+S/Cmd+S) - ターミナルで次を実行します。
python hello.py
出力:
Hello, World!
私は Python を学んでいます!
1 + 1 = 2
おめでとうございます。あなたの最初の Python プログラムができました!
方法 3: Jupyter Notebook で実行する
第 1 ステップですでに Jupyter をインストールしています。次で起動します。
jupyter notebook
新しい Notebook を作成し、コードセルに print("Hello from Jupyter!") と入力して Shift+Enter で実行します。
- 対話モード: 少しのコードをすぐ試したいとき
- VS Code + .py ファイル: 本格的なプロジェクトコードを書くとき
- Jupyter Notebook: データ分析、学習用の実験(このコースでは主にこれを使います)
Python コードの基本ルール
本格的に学ぶ前に、まず最も基本的なルールを確認しましょう。
インデントが重要
Python では、他の言語のように波かっこ {} を使わず、インデント(通常は 4 スペース)でコードブロックを表します。
# 正しい ✅
if True:
print("4 スペースでインデントされています")
print("同じコードブロックです")
次の例は意図的に間違っています。実行すると IndentationError が発生します。
if True:
print("インデントがないので Python はエラーになります")
インデントミスは初心者が最もよくやるミスです。VS Code は自動でインデントを手伝ってくれますが、コードをコピペしたときは、インデントが正しいか必ず確認しましょう。
コメントは # を使う
# これはコメントです。Python は無視します
print("この行は実行されます") # 行末にもコメントを書けます
# 複数行コメントは、# で始まる行を並べます
# 1 行目のコメント
# 2 行目のコメント
コメントは人間のために書くものです。あなた自身や他の人がコードを理解しやすくなります。良いコメントは、何をしたかではなく、なぜそうしたかを説明します。
大文字と小文字を区別する
name = "Alice"
Name = "Bob"
NAME = "Charlie"
# これらは 3 つの別々の変数です!
print(name) # Alice
Print(name) # エラー!Python に Print はなく、print だけです
ファイルの末尾は .py
Python スクリプトの拡張子は .py です。たとえば hello.py、train.py、model.py です。
Python 2 それとも Python 3?
短く答えると、Python 3 を使ってください。Python 2 は使わないでください。
Python 2 は 2020 年 1 月 1 日に正式にサポート終了しました。新しいプロジェクトや現代的なライブラリは、すべて Python 3 のみをサポートしています。このコースでは Python 3.10 以上 を使います。
Python のバージョンを確認しましょう。
python --version
# Python 3.10.x 以上が表示されるはずです
もし Python 2.x と表示されたら、python3 コマンドを使うか、第 1 ステップで設定した conda 環境が正しく有効になっているか確認してください。
ハンズオン演習
演習 1: Hello World の発展版
about_me.py というファイルを作成し、自己紹介を出力してみましょう。
print("=== 自己紹介 ===")
print("名前:[あなたの名前]")
print("目標:AI エンジニアになること")
print("学習中:Python プログラミング")
print("=" * 20)
実行して、出力を確認してください。内容を変更して、もっと情報を追加してみましょう。
演習 2: Python を電卓として使う
Python の対話モードで、次の計算を試してみましょう。
>>> 100 + 200
>>> 10 * 3.14
>>> 2 ** 10 # ** は累乗、2 の 10 乗
>>> 17 / 5 # 割り算
>>> 17 // 5 # 切り捨て除算(小数部分を捨てる)
>>> 17 % 5 # 余り
それぞれの結果を記録して、なぜそうなるのか考えてみましょう。
演習 3: print() を調べる
次のコードを試して、print() のさまざまな使い方を観察しましょう。
print("Hello")
print("Hello", "World") # 複数の引数はカンマで区切る
print("Hello", "World", sep="-") # - でつなぐ
print("Hello", end=" ") # 改行しない
print("World")
print("価格:", 99.9, "円")
まとめ
| ポイント | 説明 |
|---|---|
| Python は AI 開発の第一選択 | ほとんどの AI フレームワークは Python を基盤にしている |
| 文法がシンプルで自然言語に近い | 学習のハードルが下がり、ロジックに集中できる |
| エコシステムが豊富 | 40 万以上のサードパーティライブラリがあり、ほとんどのニーズに既製の解決策がある |
| 実行方法は 3 種類ある | 対話モード、.py ファイル、Jupyter Notebook |
| インデントは Python の命 | 4 スペースでインデントし、Tab は使わない |
プログラミングは技能です。見るだけでは身につきません。各レッスンの練習は、必ず自分で手を動かして打ち込んでください。コピー&ペーストではなく、1 文字ずつ入力してみましょう。入力する中でミスをし、デバッグし、より深く理解できるようになります。