ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
if 文の基本
age = 20
if age >= 20:
print("成人")
elif age >= 18:
print("18-19歳")
else:
print("未成年")
# 1 行で書く(推奨されないが可能)
if age >= 20: print("成人")
C 系言語と異なり波括弧の代わりにインデントでブロックを表します。同じブロック内のインデントは揃える(4 スペース推奨、PEP 8)。
三項演算子
# x = (cond) ? a : b (C 系) → Python では
x = a if cond else b
# 例
status = "成人" if age >= 20 else "未成年"
# ネストも可能(読みにくいので非推奨)
grade = "A" if score >= 90 else "B" if score >= 80 else "C"
# リスト内包と組み合わせ
nums = [n if n > 0 else 0 for n in data] # 負数を 0 に
Truthy / Falsy
条件に直接渡せる値は多数。偽として扱われるものを覚えておくと簡潔に書けます。
| Falsy(偽扱い) | Truthy(真扱い) |
|---|---|
False / None | True |
0 / 0.0 / 0j | 非ゼロの数値 |
"" | 非空文字列("0" も True) |
[] / () / {} / set() | 非空コレクション |
カスタムクラスの __bool__ が False / __len__ が 0 | その他 |
# Pythonic な書き方
if items: # 空リストでなければ
process(items)
if name: # 空文字でなければ
print(name)
if value is None: # None 専用判定(== None は非推奨)
raise ValueError()
# ❌ 罠: 0 や '' を「未入力」扱いするバグ
def save(score):
if not score: # score=0 でもスキップされてしまう
return
db.save(score)
# ✅ 修正
def save(score):
if score is None:
return
db.save(score)
Walrus 演算子 (:=)
Python 3.8+ で導入された代入式。条件式の中で変数を作れます。
# ❌ 従来: 2 行 + 重複計算
n = len(items)
if n > 10:
print(f"too many: {n}")
# ✅ Walrus
if (n := len(items)) > 10:
print(f"too many: {n}")
# ファイル読み込みループに便利
while chunk := f.read(8192):
process(chunk)
# リスト内包内で
filtered = [y for x in data if (y := transform(x)) is not None]
# 入力検証
while not (name := input("name? ").strip()):
print("空文字は不可")
match 文(3.10+ パターンマッチング)
# 単純な値マッチ
def http_status(code):
match code:
case 200 | 201 | 204:
return "Success"
case 301 | 302:
return "Redirect"
case 400:
return "Bad Request"
case 404:
return "Not Found"
case _: # _ は任意
return "Unknown"
# 構造マッチ(タプル/リスト/dict/dataclass を分解)
def handle(event):
match event:
case {"type": "click", "x": x, "y": y}:
print(f"clicked at {x},{y}")
case {"type": "key", "value": v}:
print(f"key: {v}")
case [first, *rest]:
print(f"list start={first}")
case Point(x=0, y=0): # dataclass
print("origin")
case _:
print("unknown")
# ガード条件
match age:
case n if n < 0:
print("invalid")
case n if n < 18:
print("minor")
case _:
print("adult")
ネスト回避: 早期 return / ガード節
# ❌ 深いネスト
def process(user):
if user is not None:
if user.is_active:
if user.has_permission:
# ... 本処理 ...
return True
else:
return False
else:
return False
else:
return False
# ✅ 早期 return で平坦化
def process(user):
if user is None:
return False
if not user.is_active:
return False
if not user.has_permission:
return False
# ... 本処理 ...
return True
比較演算子の連結
Python では 0 < x < 10 が数学通りに動きます。C 系言語と異なるので注意。
# Python では数学通り
if 0 <= score <= 100:
print("valid")
# ↑ (0 <= score) and (score <= 100) と等価
# 3 つ以上もOK
if a < b < c < d:
...
# C 言語との違い
# C: if (0 < x < 10) → (0 < x) を bool 化(0 or 1) して < 10 → ほぼ常に真
# Python: 期待通り 0 < x and x < 10
FAQ
Q: x == None と x is None どっち?
A: 必ず is None。None はシングルトン、__eq__ がオーバーライドされている可能性もあるため。
Q: switch 文はある?
A: 3.10+ の match 文が事実上の switch + パターンマッチ。それ以前は dict ディスパッチ {key: handler}[key]() や if-elif で代用。
Q: 三項演算子は使うべき?
A: 短く意味が明確なら積極的に。複数ネストは避けて通常の if-else に。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- if文
- switch
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?