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"