Python初心者 チートシート

プログラミング入門者のための実践リファレンス

Pythonとは?

Pythonは、シンプルで読みやすい文法が特徴のプログラミング言語です。Web開発、データ分析、機械学習、自動化など幅広い分野で使われています。このチートシートでは、Python初心者が最も頻繁に使う基本構文をまとめています。

初心者向け 基本構文 実践的

変数とデータ型

変数は「箱」のイメージ。名前を付けてデータを保存できる

# 変数の基本
name = "太郎"          # 文字列 (str)
age = 25               # 整数 (int)
height = 175.5         # 小数 (float)
is_student = True      # 真偽値 (bool)

# 複数の値を一度に代入
x, y, z = 1, 2, 3

# 型の確認
print(type(name))      # 

変数名は小文字とアンダースコア(例: user_name)

データ型は自動判定される(動的型付け)

文字列操作

# 文字列の結合
greeting = "こんにちは、" + "太郎さん"
message = f"私は{age}歳です"  # f-string (推奨)

# よく使う文字列メソッド
text = "  Hello World  "
text.upper()          # "  HELLO WORLD  "
text.lower()          # "  hello world  "
text.strip()          # "Hello World"
text.replace("o", "0")  # "  Hell0 W0rld  "
text.split()          # ['Hello', 'World']

# 文字列の長さ
len("Python")         # 6

f-string(f"...")が最も読みやすい

strip()で前後の空白を削除

算術演算

# 基本演算
10 + 3   # 13 (足し算)
10 - 3   # 7  (引き算)
10 * 3   # 30 (掛け算)
10 / 3   # 3.333... (割り算)
10 // 3  # 3  (切り捨て除算)
10 % 3   # 1  (余り)
10 ** 3  # 1000 (累乗)

# 代入演算子
x = 5
x += 3   # x = x + 3 と同じ (8)
x *= 2   # x = x * 2 と同じ (16)

整数除算

// で小数点切り捨て

余り

% で割り算の余り

条件分岐(if文)

# 基本構文
age = 18
if age >= 20:
    print("成人です")
elif age >= 13:
    print("未成年です")
else:
    print("子供です")

# 比較演算子
x == y   # 等しい
x != y   # 等しくない
x > y    # より大きい
x >= y   # 以上
x < y    # 未満
x <= y   # 以下

# 論理演算子
if age >= 18 and has_license:
    print("運転できます")
if is_weekend or is_holiday:
    print("休日です")
if not is_working:
    print("仕事していません")

インデント(字下げ)が必須!スペース4つが標準

リスト操作(配列)

基本操作

# リストの作成
fruits = ["りんご", "バナナ", "みかん"]

# 要素の追加
fruits.append("ぶどう")      # 末尾に追加
fruits.insert(1, "いちご")   # 1番目に挿入

# 要素の削除
fruits.remove("バナナ")      # 値で削除
fruits.pop()                 # 末尾を削除
fruits.pop(0)                # 0番目を削除

# 要素数の確認
len(fruits)                  # リストの長さ

アクセスとスライス

numbers = [0, 1, 2, 3, 4, 5]

# インデックスアクセス(0始まり)
numbers[0]        # 0 (最初の要素)
numbers[-1]       # 5 (最後の要素)
numbers[-2]       # 4 (後ろから2番目)

# スライス(範囲取得)
numbers[1:4]      # [1, 2, 3] (1番目から3番目)
numbers[:3]       # [0, 1, 2] (最初から2番目)
numbers[3:]       # [3, 4, 5] (3番目から最後)
numbers[::2]      # [0, 2, 4] (2つ飛ばし)

リストは変更可能(ミュータブル)。タプル (1, 2, 3) は変更不可

ループ処理

forループ

# リストの要素を順番に処理
fruits = ["りんご", "バナナ", "みかん"]
for fruit in fruits:
    print(fruit)

# 回数指定ループ
for i in range(5):        # 0,1,2,3,4
    print(i)

for i in range(1, 6):     # 1,2,3,4,5
    print(i)

# インデックス付きループ
for i, fruit in enumerate(fruits):
    print(f"{i}: {fruit}")

whileループ

# 条件が満たされる間ループ
count = 0
while count < 5:
    print(count)
    count += 1

# ループ制御
for i in range(10):
    if i == 3:
        continue  # スキップして次へ
    if i == 7:
        break     # ループを抜ける
    print(i)      # 0,1,2,4,5,6
無限ループに注意!必ず終了条件を設定

辞書(ディクショナリ)

基本操作

# 辞書の作成
person = {
    "name": "太郎",
    "age": 25,
    "city": "東京"
}

# 値の取得
person["name"]          # "太郎"
person.get("age")       # 25
person.get("job", "未設定")  # デフォルト値

# 値の追加・更新
person["job"] = "エンジニア"
person["age"] = 26

# 値の削除
del person["city"]

辞書の操作

# キーの確認
"name" in person        # True

# すべてのキー・値を取得
person.keys()           # dict_keys(['name', 'age'])
person.values()         # dict_values(['太郎', 26])
person.items()          # キーと値のペア

# 辞書のループ
for key, value in person.items():
    print(f"{key}: {value}")

辞書は「キー:値」のペア。JSONデータと似た構造

関数の定義

基本的な関数

# 引数なし関数
def greet():
    print("こんにちは")

greet()  # 呼び出し

# 引数あり関数
def greet_person(name):
    print(f"こんにちは、{name}さん")

greet_person("太郎")

# 戻り値のある関数
def add(a, b):
    return a + b

result = add(3, 5)  # 8

デフォルト引数

# デフォルト値の設定
def introduce(name, age=20):
    print(f"{name}、{age}歳")

introduce("太郎")        # "太郎、20歳"
introduce("花子", 25)    # "花子、25歳"

# キーワード引数
def order(item, size="M", qty=1):
    print(f"{item}: {size}サイズ x{qty}")

order("コーヒー", qty=2, size="L")

ファイルの読み書き

読み込み

# ファイル読み込み
with open("data.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

# 1行ずつ読み込み
with open("data.txt", "r", encoding="utf-8") as f:
    for line in f:
        print(line.strip())

書き込み

# 上書き
with open("output.txt", "w", encoding="utf-8") as f:
    f.write("こんにちは\n")
    f.write("世界\n")

# 追記
with open("output.txt", "a", encoding="utf-8") as f:
    f.write("追加行\n")
"w"は上書き、"a"は追記

CSV

import csv

# CSV読み込み
with open("data.csv", encoding="utf-8") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

# CSV書き込み
data = [["名前", "年齢"], ["太郎", 25]]
with open("out.csv", "w", encoding="utf-8", newline="") as f:
    writer = csv.writer(f)
    writer.writerows(data)

よく使う標準ライブラリ

random

import random

random.randint(1, 6)  # 1-6のランダム整数
random.choice(["A", "B", "C"])
random.shuffle(my_list)

datetime

from datetime import datetime

now = datetime.now()
print(now.strftime("%Y-%m-%d"))
# "2025-01-15"

math

import math

math.sqrt(16)   # 4.0
math.ceil(3.2)  # 4
math.floor(3.8) # 3
math.pi         # 3.14159...

os/pathlib

import os
from pathlib import Path

os.path.exists("data.txt")
Path("data.txt").is_file()
Path.cwd()  # 現在のディレクトリ

実務で役立つTips

Pythonらしい書き方(Pythonic)

# リスト内包表記
squares = [x**2 for x in range(10)]
evens = [x for x in range(10) if x % 2 == 0]

# 三項演算子
status = "成人" if age >= 20 else "未成年"

# 複数変数の交換
a, b = b, a

エラー処理

# try-except
try:
    result = 10 / 0
except ZeroDivisionError:
    print("0で割れません")
except Exception as e:
    print(f"エラー: {e}")
finally:
    print("必ず実行される")

デバッグprint

# 変数名付きprint (Python 3.8+)
name = "太郎"
age = 25
print(f"{name=}, {age=}")
# name='太郎', age=25

# 型確認
print(type(variable))

コマンドライン引数

import sys

# python script.py arg1 arg2
args = sys.argv[1:]  # ["arg1", "arg2"]
if len(args) > 0:
    print(f"引数: {args[0]}")

ユーザー入力と型変換

入力の受け取り

# input()は常に文字列を返す
name = input("名前を入力: ")
print(f"こんにちは、{name}さん")

# 数値として使う場合は変換が必要
age_str = input("年齢を入力: ")
age = int(age_str)  # 文字列→整数

型変換

# 文字列 → 数値
int("123")           # 123
float("3.14")        # 3.14

# 数値 → 文字列
str(123)             # "123"
str(3.14)            # "3.14"

# リスト → 文字列
"-".join(["a", "b", "c"])  # "a-b-c"