Pythonの特徴と開発環境構築
Pythonは汎用性の高い高水準言語で、簡潔な構文と豊富なライブラリが特徴です。現在の標準バージョンはPython 3.x系であり、開発環境の構築方法を解説します。
Linuxへのインストール手順
# 依存パッケージのインストール
sudo apt-get update
sudo apt-get install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
# ソースコードのビルド
wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
tar xzf Python-3.11.4.tgz
cd Python-3.11.4
./configure --enable-optimizations --prefix=/opt/python/3.11.4
make -j$(nproc)
sudo make altinstall
# バイナリのリンク作成
sudo ln -s /opt/python/3.11.4/bin/python3.11 /usr/local/bin/python3
基本文法の実践例
最初のスクリプト
#!/usr/bin/env python3
print("こんにちは、世界")
変数の命名規則
- 英数字とアンダースコアのみ使用可能
- 先頭を数字で始められない
- 予約語の使用禁止
- 意味を明確に表す命名が推奨
# 推奨スタイル例
user_count = 25 # スネークケース(公式推奨)
maxValue = 100 # キャメルケース(代替スタイル)
データ型の詳細
文字列操作の実用例
message = " Pythonプログラミング "
print(message.strip()) # 前後の空白除去 → "Pythonプログラミング"
print(message.split(" ")) # 空白で分割 → ['', 'Pythonプログラミング', '']
print(f"長さ: {len(message)}") # f文字列によるフォーマット
リスト操作のパターン
items = ["apple", "banana", "cherry"]
# スライス操作
print(items[1:3]) # ['banana', 'cherry']
print(items[::-1]) # 逆順出力 ['cherry', 'banana', 'apple']
# 要素の追加と削除
items.append("date") # 末尾追加
items.insert(1, "berry") # インデックス1に挿入
items.pop() # 末尾要素削除
制御構造の実装
条件分岐の応用例
score = int(input("点数を入力: "))
if score >= 90:
grade = "S"
elif score >= 80:
grade = "A"
elif score >= 70:
grade = "B"
else:
grade = "C"
print(f"評価: {grade}")
ループ処理の最適化
# 九九の出力(forループのネスト)
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j}×{i}={i*j}", end="\t")
print()
# 三角形のパターン出力
size = 5
for row in range(size):
print("# " * (row + 1))
ファイル操作の実践
# ファイルの安全な読み書き
with open("data.txt", "r", encoding="utf-8") as read_file:
lines = read_file.readlines()
# 特定行の修正
lines[5] = lines[5].rstrip() + " 追加テキスト\n"
with open("modified.txt", "w", encoding="utf-8") as write_file:
write_file.writelines(lines)
文字コードの理解
現代のPython開発ではUTF-8エンコーディングが標準です。主要なポイント:
- ASCII: 英数字専用(1バイト)
- UTF-8: 可変長エンコーディング(西欧言語1バイト、日本語3バイト)
- Pythonスクリプトの先頭に
# -*- coding: utf-8 -*-を記述する必要はなくなりました
# 文字コード変換の実例
japanese_text = "日本語"
utf8_bytes = japanese_text.encode("utf-8") # 文字列→バイト列
original = utf8_bytes.decode("utf-8") # バイト列→文字列