Python の特徴
Pythonは読みやすさと書きやすさを重視した言語で、初心者でも直感的にコードを書けるのが大きな魅力です。インデント(字下げ)でコードのまとまりを表すため、見た目が整理され、処理の流れを追いやすくなります。Web開発、データ分析、機械学習、自動化など、幅広い分野で使われ、豊富なライブラリが学習や実務を後押しします。
Pythonは「必要最小限の文法」で始められるのも利点です。最初は変数、データ型、条件分岐、ループ、関数だけで多くのことができます。インデントやPEP 8(スタイルガイド)に注意すると、読みやすく保守しやすいコードを書けます。
文法の基本(超入門)
変数とデータ型の基本
Pythonでは変数の型を宣言する必要はありません。代入した値に応じて型が決まります。代表的な型は整数(int)、浮動小数(float)、文字列(str)、真偽値(bool)です Qiita Pythonのソバ。
x = 10 # 整数
pi = 3.14 # 浮動小数
name = "太郎" # 文字列
is_ok = True # 真偽値
Python文字列の結合や型変換はよく使います。文字列と数値はそのまま連結できないため、str()で文字列に変換します。
age = 20
message = "年齢は " + str(age) + " 歳です"
print(message) # 年齢は 20 歳です
Python条件分岐(if, elif, else)
条件に応じて処理を切り替えます。インデントがブロックを表すため、行頭のスペースがとても重要です。
age = 17
if age >= 18:
print("成人です")
else:
print("未成年です")
Python複数条件がある場合はelifを使います。
score = 85
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
else:
print("D")
Pythonループ(for, while)
決まった回数や条件を満たす間、処理を繰り返します。range()は連番を作るのに便利です。
# for: 0〜4を出力
for i in range(5):
print(i)
# while: 条件がTrueの間繰り返す
count = 0
while count < 5:
print(count)
count += 1
Python関数の定義と呼び出し
処理をひとまとまりにして再利用できます。引数や戻り値を使って入出力を扱います。
def greet(name):
return f"こんにちは、{name}さん"
print(greet("太郎")) # こんにちは、太郎さん
Python主要なデータ構造
リスト(list)とタプル(tuple)
リストは可変の並び、タプルは不変の並びです。取り扱いの柔軟性が高いのはリスト、変更禁止で安全にしたいときはタプル。
fruits = ["apple", "banana", "orange"]
fruits.append("grape") # 末尾に追加
print(fruits[1]) # banana
point = (10, 20) # タプル(不変)
# point[0] = 99 # これはエラー(タプルは変更不可)
Python辞書(dict)と集合(set)
辞書は「キー→値」のペアを管理し、集合は重複を持たない要素の集まりです。探索や重複排除に強い構造です。
user = {"name": "太郎", "age": 20}
user["age"] = 21
print(user.get("email", "未登録")) # キーがなければ既定値
tags = {"python", "beginner", "python"} # 重複は自動で排除
print(tags) # {'python', 'beginner'}
Python重要ポイントの深掘り
インデントとブロックの考え方
Pythonでは中括弧の代わりにインデントでブロックを示します。インデントは「半角スペース4つ」が一般的で、タブとスペースを混在させるとバグの温床になります。if、for、while、defなどの直後の行からインデントを始め、ブロックが終わる場所でインデントを戻すのが基本です。
# 良い例(4スペースインデント)
def classify(n):
if n % 2 == 0:
return "偶数"
else:
return "奇数"
Pythonインデントは「見た目」だけではなく「文法」の一部です。ズレると構文エラーになるため、エディタ設定で「タブをスペースに変換」「可視化」を有効にすると安全です。
真偽値と条件式の落とし穴
Pythonでは空文字、0、空のコンテナ([], {}, set())は偽(False)として評価されます。条件式に直接オブジェクトを置く書き方は簡潔ですが、意図しない真偽評価を避けるため、比較を明示する方が読みやすい場面があります。
items = []
if items: # 空リストはFalse
print("何かある")
else:
print("空です")
text = ""
if text != "": # 明示することで意図が伝わる
print("非空文字列")
Pythonミュータブルとイミュータブル
リストや辞書はミュータブル(変更可能)、文字列やタプルはイミュータブル(変更不可)。関数の引数にミュータブルを渡した場合、関数内の変更が外側に影響することに注意すると、予期せぬ副作用を防げます。
def add_item(lst, x):
lst.append(x) # 呼び出し元のリストも変わる
data = [1, 2]
add_item(data, 3)
print(data) # [1, 2, 3]
Python副作用を避けたいときはコピーを渡します。
import copy
safe = copy.copy(data) # 浅いコピー
Python実用的な標準関数とイディオム
abs, round, max, minといった組み込み関数はすぐに役立ちます。f文字列は可読性高く文字列整形ができ、リスト内包表記は短く表現できる繰り返し構文です。
# 数値関数
print(abs(-100)) # 100
print(round(2.21, 1)) # 2.2
print(max([5, 9, 3, 12])) # 12
# f文字列
name, score = "太郎", 92
print(f"{name}さんの点数は {score} 点")
# リスト内包表記
squares = [n*n for n in range(5)] # [0, 1, 4, 9, 16]
Python例題で身につける
例題1:入力に応じてメッセージを変える
標準入力、型変換、条件分岐の総合練習です。
age_text = input("年齢を入力してください: ")
# 入力は文字列。数値として比較するためにintへ変換
age = int(age_text)
if age < 0:
print("不正な値です")
elif age < 13:
print("子どもです")
elif age < 18:
print("ティーンです")
else:
print("成人です")
Pythonポイントは、input()の戻り値が文字列であることと、比較前に数値へ変換することです。例外処理(try/except)を足すとより堅牢になります。
例題2:売上集計(リスト+辞書+ループ)
複数データを集計し、見やすく表示します。
orders = [
{"item": "apple", "price": 120, "qty": 3},
{"item": "banana", "price": 90, "qty": 5},
{"item": "orange", "price": 150, "qty": 2},
]
total = 0
for order in orders:
subtotal = order["price"] * order["qty"]
total += subtotal
print(f'{order["item"]}: 小計 {subtotal} 円')
print(f"合計: {total} 円")
Python辞書で項目をわかりやすく管理し、forで順番に処理する基本パターンです。キー名のスペルミスはKeyErrorになりがちなので注意しましょう。
例題3:関数で再利用可能な処理にする
業務ロジックを関数化しテストしやすくします。
def calc_tax(amount, rate=0.1):
"""税込金額を返す"""
if amount < 0 or rate < 0:
raise ValueError("負の値は不可")
tax = round(amount * rate)
return amount + tax
print(calc_tax(1000)) # 1100
print(calc_tax(1000, 0.08)) # 1080
Pythonデフォルト引数、入力検証、丸め処理を含む、実務で使える最小構成です。
次の一歩(学習の進め方のヒント)
基本文法が掴めたら、例外処理(try/except)、ファイル入出力、モジュールのインポート、標準ライブラリの活用(datetime、pathlib、csv、jsonなど)へ広げると、日常の作業自動化やデータ処理が一気に現実的になります。スタイルガイド(PEP 8)に沿ったインデントと命名、テストの導入(unittestやpytest)を意識すると、品質と保守性が高まります。
Pythonは分野横断で使えるため、目的に合わせたライブラリから触れるのがおすすめです。WebならFlask/Django、データ分析ならNumPy/pandas、機械学習ならscikit-learn/TensorFlowなど、学ぶべき順序が自然に見えてきます。

