ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
代入は「箱に入れる」ではない
Python の = は、右辺のオブジェクトに左辺の名前を結び付ける操作です。値がコピーされるわけではありません。
a = [1, 2, 3]
b = a # 同じリストに別名を付けただけ
b.append(4)
print(a) # [1, 2, 3, 4] ← a も変わる
# 別物にしたいならコピーする
c = a.copy() # または list(a) / a[:]
c.append(5)
print(a, c) # [1, 2, 3, 4] [1, 2, 3, 4, 5]
# 入れ子は copy でも内側が共有される
import copy
d = copy.deepcopy(a) # 完全に独立させたいとき
複合代入の一覧
| 演算子 | 意味 | 例 |
|---|---|---|
+= | 加算 / 連結 | x += 1 |
-= *= | 減算 / 乗算 | x *= 2 |
/= | 除算(float になる) | x /= 2 |
//= %= | 切り捨て除算 / 剰余 | x //= 2 |
**= | べき乗 | x **= 2 |
&= |= ^= | ビット AND / OR / XOR | flags |= MASK |
<<= >>= | シフト | x <<= 1 |
Python には ++ / -- はありません。x += 1 と書きます。x++ は構文エラー、++x は「単項プラスを 2 回」と解釈されて何も起きません。
+= と = x + は同じではない
a = [1, 2]
b = a
a += [3] # その場で拡張(a.extend([3]) と同じ)
print(a, b) # [1, 2, 3] [1, 2, 3] ← b も変わる
a = [1, 2]
b = a
a = a + [3] # 新しいリストを作って a に付け替え
print(a, b) # [1, 2, 3] [1, 2] ← b は元のまま
タプルや文字列のような不変オブジェクトでは、+= も必ず新しいオブジェクトを作るのでこの違いは出ません。
複数代入とアンパック
x = y = 0 # 同じ値を同時に
a, b = 1, 2 # タプルのアンパック
a, b = b, a # 入れ替え(右辺が先に評価される)
print(a, b) # 2 1
first, *rest = [1, 2, 3, 4]
print(first, rest) # 1 [2, 3, 4]
head, *mid, tail = [1, 2, 3, 4, 5]
print(head, mid, tail) # 1 [2, 3, 4] 5
for i, name in enumerate(["a", "b"]):
print(i, name) # 0 a / 1 b
# 使わない値は _ に入れる慣習
_, important = ("捨てる", "使う")
x = y = [] は同じ空リストを 2 つの名前で共有します。別々に使いたいなら x, y = [], [] と書いてください。
セイウチ演算子(:=)
Python 3.8 で入った、式の中で代入するための演算子です。値を使い回したいが、そのために行を増やしたくないときに使います。
# 読み込みながら終端を判定する
with open("data.txt") as f:
while (line := f.readline()):
print(line.rstrip())
# 計算結果を条件と本体の両方で使う
data = [1, 2, 3, 4, 5]
if (n := len(data)) > 3:
print(f"{n} 件は多い")
# 内包表記で中間結果を再利用する
words = ["apple", "kiwi", "banana"]
long_upper = [u for w in words if len(u := w.upper()) > 4]
print(long_upper) # ['APPLE', 'BANANA']
括弧が必要な場面が多く、読みにくくなりがちです。同じ値を 2 回書くのを避けられるときだけ使うのが無難です。
グローバル変数への代入
count = 0
def bad():
# count += 1
# UnboundLocalError: 関数内で代入があると全体がローカル扱いになる
pass
def good():
global count
count += 1
good()
print(count) # 1
入れ子関数で外側のローカル変数に代入したい場合は nonlocal を使います。ただし、どちらも多用すると追いにくくなるため、値を返す設計にできないか先に検討してください。
関連
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?