Python
#1
TIOBE#1
PYPL#1
GitHub#4
RedMonk#2
IEEESpectrum#1
JetBrains#2
プログラミング言語
Python
概要
Pythonは、シンプルで読みやすい構文を持つ汎用プログラミング言語です。
詳細
Pythonは1991年にGuido van Rossumによって開発されたインタープリター型のプログラミング言語で、「コードの読みやすさ」を重視した設計思想が特徴です。豊富な標準ライブラリと膨大なサードパーティ製パッケージエコシステムにより、データ分析・機械学習からWeb開発、デスクトップアプリケーション、システム管理まで幅広い分野で活用されています。インデントによるブロック構造やシンプルな文法により、プログラミング初心者にも習得しやすく、かつ大規模システムにも対応できる柔軟性を持っています。
書き方の例
Hello World
# 基本的な出力
print("Hello, World!")
# 変数を使った出力
message = "こんにちは、Python!"
print(message)
# フォーマット文字列を使った出力
name = "太郎"
age = 25
print(f"私の名前は{name}で、{age}歳です。")
File I/O
# ファイルの書き込み
with open("sample.txt", "w", encoding="utf-8") as file:
file.write("これはテストファイルです。\n")
file.write("Pythonでファイル操作を学んでいます。")
# ファイルの読み込み
with open("sample.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)
# 行ごとの読み込み
with open("sample.txt", "r", encoding="utf-8") as file:
for line in file:
print(line.strip()) # 改行文字を除去
条件分岐
# 基本的なif文
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
else:
grade = "D"
print(f"得点: {score}, 評価: {grade}")
# 複数条件の組み合わせ
age = 20
has_license = True
if age >= 18 and has_license:
print("運転できます")
elif age >= 18:
print("免許を取得してください")
else:
print("18歳になってから免許を取得してください")
リスト、辞書、タプル
# リスト(配列)の操作
fruits = ["りんご", "バナナ", "オレンジ"]
fruits.append("ぶどう") # 要素の追加
print(f"果物リスト: {fruits}")
print(f"最初の果物: {fruits[0]}")
# 辞書(ハッシュ)の操作
person = {
"name": "田中太郎",
"age": 30,
"city": "東京"
}
person["job"] = "エンジニア" # 新しいキーと値の追加
print(f"名前: {person['name']}, 年齢: {person['age']}")
# タプル(変更不可なリスト)
coordinates = (10, 20)
print(f"座標: x={coordinates[0]}, y={coordinates[1]}")
ループ、繰り返し処理
# リストの要素を順番に処理
numbers = [1, 2, 3, 4, 5]
for num in numbers:
print(f"数値: {num}, 2倍: {num * 2}")
# range()を使った数値ループ
for i in range(1, 6):
print(f"{i}の2乗は{i**2}です")
# 辞書の要素を処理
student_scores = {"太郎": 85, "花子": 92, "次郎": 78}
for name, score in student_scores.items():
print(f"{name}さんの得点: {score}")
# while文
count = 0
while count < 5:
print(f"カウント: {count}")
count += 1
関数の定義と呼び出し
# 基本的な関数
def greet(name):
"""挨拶をする関数"""
return f"こんにちは、{name}さん!"
# デフォルト引数を持つ関数
def calculate_area(width, height=10):
"""長方形の面積を計算する関数"""
return width * height
# 複数の値を返す関数
def get_name_age():
"""名前と年齢を返す関数"""
return "田中太郎", 25
# 関数の呼び出し
message = greet("山田")
print(message)
area = calculate_area(5) # heightはデフォルト値10を使用
print(f"面積: {area}")
name, age = get_name_age() # タプルのアンパック
print(f"名前: {name}, 年齢: {age}")
クラスの定義と使用
class Car:
"""車を表すクラス"""
def __init__(self, make, model, year):
"""コンストラクタ(初期化メソッド)"""
self.make = make # メーカー
self.model = model # モデル
self.year = year # 年式
self.mileage = 0 # 走行距離
def drive(self, distance):
"""運転して走行距離を増やすメソッド"""
self.mileage += distance
print(f"{distance}km 運転しました。総走行距離: {self.mileage}km")
def get_info(self):
"""車の情報を取得するメソッド"""
return f"{self.year}年式 {self.make} {self.model}"
# クラスのインスタンス化と使用
my_car = Car("トヨタ", "プリウス", 2022)
print(my_car.get_info())
my_car.drive(50)
my_car.drive(30)
ライブラリの使用
# 標準ライブラリの使用
import datetime
import random
import json
# 現在の日時を取得
now = datetime.datetime.now()
print(f"現在時刻: {now.strftime('%Y年%m月%d日 %H:%M:%S')}")
# ランダムな数値生成
random_number = random.randint(1, 100)
print(f"ランダムな数値: {random_number}")
# JSON データの処理
data = {
"name": "Python学習者",
"skills": ["基本構文", "関数", "クラス"],
"level": "初級"
}
# 辞書をJSON文字列に変換
json_string = json.dumps(data, ensure_ascii=False, indent=2)
print("JSON形式:")
print(json_string)
# 有名なサードパーティライブラリの例
# pip install requests でインストール
try:
import requests
response = requests.get("https://api.github.com/users/python")
if response.status_code == 200:
user_data = response.json()
print(f"GitHubユーザー: {user_data['name']}")
except ImportError:
print("requestsライブラリがインストールされていません")
特徴的な機能
リスト内包表記
# 基本的なリスト内包表記
squares = [x**2 for x in range(1, 6)]
print(f"1-5の2乗: {squares}")
# 条件付きリスト内包表記
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(f"偶数の2乗: {even_squares}")
デコレーター
def timer(func):
"""関数の実行時間を計測するデコレーター"""
import time
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"{func.__name__}の実行時間: {end - start:.4f}秒")
return result
return wrapper
@timer
def slow_function():
"""時間のかかる処理のサンプル"""
import time
time.sleep(1)
return "処理完了"
result = slow_function()
コンテキストマネージャー
class DatabaseConnection:
"""データベース接続のコンテキストマネージャー例"""
def __enter__(self):
print("データベースに接続しました")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("データベース接続を終了しました")
def query(self, sql):
print(f"実行中: {sql}")
# with文を使った安全なリソース管理
with DatabaseConnection() as db:
db.query("SELECT * FROM users")
バージョン
バージョン | ステータス | LTS | リリース日 | サポート終了日 |
---|---|---|---|---|
Python 3.13 | 最新 | - | 2024-10-07 | 2029-10 |
Python 3.12 | 現行 | - | 2023-10-02 | 2028-10 |
Python 3.11 | 現行 | - | 2022-10-24 | 2027-10 |
Python 3.10 | 現行 | - | 2021-10-04 | 2026-10 |
Python 3.9 | 現行 | - | 2020-10-05 | 2025-10 |
Python 3.8 | セキュリティ修正のみ | - | 2019-10-14 | 2024-10 |
Python 2.7 | サポート終了 | - | 2010-07-03 | 2020-01-01 |
参考ページ
公式ドキュメント
- Python.org - 公式サイト
- Python Documentation - 公式ドキュメント
- Python Tutorial - 公式チュートリアル
学習リソース
- Real Python - 実践的なPythonチュートリアル
- Python.jp - 日本Pythonユーザー会
- PyPI - Pythonパッケージインデックス
開発ツール
- Python Package Index (PyPI) - パッケージリポジトリ
- Anaconda - データサイエンス用Pythonディストリビューション
- Jupyter Notebook - インタラクティブ開発環境