Pythonプログラミング入門:構文・データ構造・実行環境の完全ガイド
1. Python の概要と環境構築
Pythonは1989年にオランダのグイド・ヴァンロッサムによって設計された高級プログラミング言語です。読みやすさと高い生産性を重視した設計思想を持ち、Web開発、データサイエンス、自動化スクリプト、組み込みシステムなど幅広い分野で採用されています。
開発環境の準備では、公式配布サイトから言語インタプリタをダウンロードする必要があります。インタプリタはコードを逐次実行するエンジンであり、PyCharmやVS CodeなどのIDE(統合開発環境)は別途導入してコードの編集・デバッグを効率化します。環境変数にインストールパスを設定することで、ターミナルからコマンドを直接実行できるようになります。
基本的な入出力は組み込み関数で提供されます。標準入力から文字列を受け取り、標準出力に結果を表示する基本パターンは以下の通りです。
user_input = input("処理する数値を入力してください: ")
converted_val = int(user_input)
print(f"処理対象値: {converted_val}")
コードの可読性を保つため、インデントは半角スペース4つを標準とし、論理的なブロック構造を視覚的に明確にします。コメントには行頭の#、複数行のドキュメンテーション文字列には"""を使用します。長文のコードを改行する場合は行末にバックスラッシュ\を配置するか、括弧内で自然改行を行います。
2. データ型とコレクションの取り扱い
Pythonには数値型、論理型、文字列型など複数の基本データ型が定義されています。整数型int、浮動小数点型float、複素数型complexは算術演算の基盤となります。論理型boolはTrueとFalseの二値を取り、and、or、not演算子による条件評価に使用されます。
変数は動的型付けを採用しており、宣言と同時にメモリ領域が確保されます。型情報を確認するにはtype()関数を用います。定数は言語仕様として強制されるものではありませんが、慣習的に大文字で命名し、プログラム実行中に変更しない値を表現します。
シーケンス型およびコレクション型はデータの構造化に不可欠です。
- 文字列 (str): 一度生成すると変更不可。シングルクォートまたはダブルクォートで定義。
- リスト (list): 順序付きの可変コレクション。要素の追加・削除・変更が可能。
- タプル (tuple): 順序付きの不変コレクション。定義後の要素更新不可。
- 辞書 (dict): キーと値のペアを格納。キーはハッシュ化可能でなければならない。
- 集合 (set): 重複を許さない順序なしコレクション。
各コレクションの代表的な操作例を示します。
# リストのソートとフィルタリング
raw_data = [45, 12, 89, 33, 67]
sorted_data = sorted(raw_data, reverse=True)
filtered_even = [x for x in raw_data if x % 2 == 0]
# 辞書の安全な値取得と更新
config = {"host": "localhost", "port": 8080}
endpoint = config.get("host", "unknown")
config["timeout"] = 30
del config["port"]
# 集合の演算
set_alpha = {1, 2, 3, 4}
set_beta = {3, 4, 5, 6}
common_elements = set_alpha & set_beta
unique_elements = set_alpha | set_beta
型変換は明示的に行うのが安全です。数値から文字列への変換はstr()、文字列から数値へはint()やfloat()を使用します。
3. 制御構文:条件分岐と反復処理
プログラムの実行フローを制御する構文として、条件分岐とループ処理が提供されています。
条件分岐はif、elif、elseの組み合わせで記述します。インデントブロック内が評価結果に応じて実行されます。
score = 75
if score >= 90:
grade = "A"
elif score >= 70:
grade = "B"
else:
grade = "C"
print(f"評価: {grade}")
ループ処理にはwhileとforがあります。for文はイテラブルオブジェクトの各要素を順に展開します。ループの制御にはbreak(即時終了)、continue(残りの処理をスキップして次へ)、pass(空のステートメント)が使用されます。
# for文と制御文の活用
target_list = [10, 15, 20, 25, 30]
results = []
for item in target_list:
if item < 15:
continue
if item > 25:
break
results.append(item * 2)
print(results) # 出力: [30, 40]
# passの用途
def placeholder_logic(data):
pass # 後で実装を補完する構文の枠組み
4. 関数定義とモジュールの活用
関数は処理をブロック化し、再利用性と保守性を高める仕組みです。defキーワードで定義し、引数を受け取り、returnで結果を返します。戻り値を省略した場合、Noneが暗黙的に返されます。
def calculate_tax(amount, tax_rate=0.10):
"""消費税込みの金額を計算する"""
return amount * (1 + tax_rate)
base_price = 1500
final_price = calculate_tax(base_price)
print(f"合計: {final_price}円")
簡易な無名関数にはlambda式を用います。短い処理や高階関数の引数として頻繁に使用されます。
compute_area = lambda length, width: length * width
print(compute_area(5, 8)) # 出力: 40
変数の有効範囲(スコープ)にはローカルスコープとグローバルスコープがあります。関数内で定義された変数はローカル変数となり、外部からは参照できません。グローバル変数を使用する場合はglobalキーワードで宣言します。
モジュールは関連する関数やクラスをまとめたファイルです。読み込みには複数の方法があります。
import datetime as dt
print(dt.date.today())
from math import pi, sqrt
print(sqrt(pi * 2))
5. ファイル入出力の基礎
Pythonではテキストファイルやバイナリファイルの読み書きを標準ライブラリで直接扱えます。ファイル操作はopen()関数で行い、コンテキストマネージャーwithステートメントと組み合わせることで、処理終了時のクローズ処理を自動的に行うのが推奨されます。
オープンモードには読み取り専用'r'、上書き書き込み'w'、追記'a'などがあります。文字化けを防ぐため、エンコーディングはencoding='utf-8'を明示的に指定します。
# テキストファイルの書き込み
with open("output.log", "w", encoding="utf-8") as out_file:
out_file.write("システム起動時刻: 10:00:00\n")
out_file.write("ステータス: 正常\n")
# テキストファイルの読み込み
with open("output.log", "r", encoding="utf-8") as in_file:
all_lines = in_file.readlines()
for line in all_lines:
print(line.strip())
ファイルポインタの位置制御にはseek()メソッドを使用します。第1引数にバイト単位のオフセット、第2引数に基準位置(0:先頭, 1:現在地, 2:末尾)を指定します。
6. オブジェクト指向プログラミング
クラスはオブジェクトの設計図であり、属性(データ)とメソッド(処理)をカプセル化します。インスタンス生成時に自動的に呼び出される初期化メソッド__init__()で初期状態を設定します。
メソッドの第一引数selfはインスタンス自身を参照し、属性へのアクセスや他のメソッドの呼び出しを可能にします。
class BankAccount:
def __init__(self, account_id, owner_name):
self.account_id = account_id
self.owner_name = owner_name
self.balance = 0.0
def deposit(self, amount):
if amount > 0:
self.balance += amount
return True
return False
def display_info(self):
return f"口座: {self.owner_name} | 残高: {self.balance}"
# インスタンスの生成と操作
client_account = BankAccount("ACC-9921", "Yamada Taro")
client_account.deposit(50000)
print(client_account.display_info())
7. スクリプトの実行ファイル化
Pythonスクリプトを他環境で実行可能ファイル(.exeなど)に変換するには、サードパーティ製のPyInstallerが広く利用されています。パッケージマネージャー経由で導入し、コマンドラインから指定のファイルに対してビルドコマンドを実行します。
主なビルドオプションには以下のものがあります。
# 依存ライブラリをすべて含む単一ファイル形式で生成
pyinstaller --onefile data_processor.py
# コンソールウィンドウを非表示にし、GUIアプリとして配布
pyinstaller --onefile --noconsole --icon=app_icon.ico gui_app.py
ビルドが完了すると、distディレクトリ内に実行ファイルが生成されます。生成物には必要なDLLやランタイムが含まれるため、Pythonがインストールされていない環境でも独立して動作します。