条件分岐とブール値の取り扱い
Pythonでは真偽値を表すためにTrueとFalse(英字の大文字始まる)を使用します。条件判断はif~elif~else構文で実現され、コードブロックの区切りはインデント(半角スペースまたはタブ)によって明示的に定義されます。
# ブール値の初期化
is_connected = True
if is_connected:
print("接続状態が有効です")
elif not is_connected:
print("接続が切れています")
else:
print("状態の判定に問題があります")
# 値を変更して再評価
is_connected = False
if is_connected:
print("接続状態が有効です")
else:
print("接続が切断されています")
ファイル入出力とエラーハンドリング
ファイル操作時はアクセス権限や存在しないパスによる例外を回避するため、try-exceptブロックを組み込みます。ユーザーからの標準入力を受け取り、特定の終了キーワードが入力されるまでファイルへ追記する例を示します。Python3以降ではエンコーディングの指定が推奨されます。
import sys
target_file = "log_data.txt"
termination_token = "Q"
try:
# 書き込みモードで開く
file_handler = open(target_file, mode="w", encoding="utf-8")
except IOError as e:
print(f"ファイル開封エラー: {target_file} → {e}")
sys.exit(1)
print(f"テキストを入力してください。(入力を終了するには '{termination_token}' と入力)")
current_entry = ""
while current_entry != termination_token:
try:
user_input = input(">> ")
if user_input == termination_token:
break
file_handler.write(user_input + "\n")
except EOFError:
print("\n入力ストリームが閉じられました")
break
file_handler.close()
print("書き込みが完了しました")
文字列操作と表記規則
Pythonの文字列はシングルクォート(' ')、ダブルクォート(" ")、トリプルクォート(''' '''または""" """)で囲みます。長文を扱う場合はトリプルクォートが適しており、改行文字を含む場合はエスケープシーケンスを用います。r''プレフィックスを付与することで、バックスラッシュを特殊文字としてではなくそのまま認識させることができます。
# トリプルクォートによる複数行テキスト
paragraph = """これは複数行の文章です。
次の行からも継続して扱えます。
特別扱いしたい場合は \b をそのまま残せます。"""
print(paragraph)
# エスケープと生文字列(raw string)の比較
escaped_seq = '\a\n' # ベル音と改行が発生する可能性がある
raw_seq = r'\a\n' # \とaと\nがそのまま出力される
print(escaped_seq)
print(raw_seq)
複数の代入演算と連想配列
一度のステートメントで複数の変数に同じ値を割り当てたり、カンマ区切りで並列代入したり可能です。左辺と右辺の要素数が一致していることが必須条件です。
# 連鎖代入
counter = step = limit = 10
# 並列代入
label, value, flag = "score", 95, True
# 表示確認
print(f"label:{label}, value:{value}, flag:{flag}, counter:{counter}")
リスト・タプル・辞書の基本操作
Pythonには配列に相当する複数の可変/不変コレクションが用意されています。リストは動的に要素の追加・削除が可能ですが、タプルは定義後に内容を変更できません(イミュータブル)。辞書はキーと値のペアでデータを管理します。
# リスト(可変)
item_list = [1, 2, 3, "apple", "orange"]
# タプル(不変)
coords_tuple = (10, 20, 30, "latitude")
# 辞書(連想配列)
settings = {}
settings["theme"] = "dark"
settings["version"] = 2
# アクセスとスライス
print(item_list[2]) # 添字2番目の要素
print(item_list[1:4]) # インデックス1以上3以下(範囲は左閉右開)
print(coords_tuple[-1]) # 末尾から1番目の要素
# 辞書の参照と更新
settings["lang"] = "ja"
print(settings.get("theme"))
print(repr(settings))
# 式実行evalの使用例(外部入力は要注意)
calculated = eval("10 + 5 * 2")
print(calculated)
標準型変換リファレンス
| 関数名 | 説明 |
|---|---|
int(x) | 数値または数値表現の文字列を整数型に変換 |
float(x) | 数値または浮動小数点数表現の文字列を浮動小数点型に変換 |
complex(real, imag) | 実部と虚部を指定し、複素数型を作成 |
str(x) | 任意のオブジェクトを文字列型に変換 |
repr(x) | オブジェクトの公式文字列表現を生成(デバッグ用) |
eval(expression) | 文字列として渡されたPython式を実行し、結果を返す |
tuple(s) | 反復可能オブジェクトをタプル型に変換 |
list(s) | 反復可能オブジェクトをリスト型に変換 |
set(s) | 重複を除いた集合型に変換 |
dict(d) | キーと値のペアを持つオブジェクトから辞書型を作成 |
chr(i) | 整数値に対応するユニコード文字に変換 |
ord(c) | 単一の文字を対応する整数コードポイントに変換 |