Python3エンジニア認定基礎試験 用語解説
可変とは
作ったあとに要素を入れ替えられる性質。リストは可変型で、cubes[3] = 64 のように要素を代入で入れ替えられ、append() で末尾に足せる。文字列は不変で、インデックスで指定した場所への代入はエラーになる。
この記事の目次
まず押さえる結論
可変は、Python3エンジニア認定基礎試験の「第3章 気楽な入門編」で確認しておきたい用語です。定義だけでなく、どの場面で使う言葉か、何と混同しやすいか、問題文のどの表現で判断するかまで確認します。
情報源と編集区分
公式範囲を確認し、具体例・誤答例・判断手順は当サイトが編集。 一次情報確認日: 2026-09-18。
試験概要(公式)試験での問われ方
定義の言い換え
用語そのものではなく、説明文の一部を言い換えて出されることがあります。
似た概念との比較
同じ章の用語と入れ替えた選択肢に注意します。対象、目的、使う場面を分けます。
具体例からの判断
問題文の事例が、定義のどの部分に対応しているかを先に確認します。
誤答しやすいポイント
×除算 / と切り捨て除算 // の取り違え。/ は割り切れる場合でも常に浮動小数点数を返し、整数の商が欲しいときは // を使う。
×負のインデックスとスライスの範囲。-1 が最後の文字で、スライスの終了位置を省略すると末尾までになる。
×リストが可変であることの扱い。代入してもコピーは作られず、同じリストを指す名前が増えるだけになる。
関連する確認問題
第3章 気楽な入門編 / リスト型の基本
リストを別の名前に代入したあと、片方に要素を足すともう片方も変わった。理由として正しいものはどれか。
正解は「代入はコピーを作らず、同じリストを指す名前が増えるだけだから」である。リストは可変で、代入しても新しいリストは作られないため、2つの名前が同じリストを指す。片方から要素を足せば、もう片方から見ても同じリストなので変化が見える。リストは不変ではないので差し替わるという説明は誤りである。浅いコピーは copy メソッドなどで明示的に作るもので、代入のときに自動で作られるわけではない。長さによって同期が変わる仕組みも無い。同じオブジェクトを指しているかどうかは id() で確かめることができ、代入した直後は元の名前と新しい名前の id() が一致する点からも、別々のリストではなく同じリストを共有していることが分かる。
第3章 気楽な入門編 / 文字列
word = 'Python' のとき、word[0] = 'J' を実行した結果として正しいものはどれか。
正解は「TypeError が発生する」である。公式チュートリアルは「Python の文字列は変更できません -- つまり不変です」と記し、文字列のインデックスで指定した場所に代入を行うとエラーになると述べている。例として word[0] = 'J' が TypeError('str' object does not support item assignment)になる様子を示している。'Jython' のような別の文字列が必要なら、'J' + word[1:] のように新しく文字列を作る。これに対してリストは可変なので、インデックスを指定した代入で要素を入れ替えられる。
第3章 気楽な入門編 / リスト型の基本
cubes = [1, 8, 27, 65, 125] に対して、cubes[3] = 64、cubes.append(216)、cubes.append(7 ** 3) を順に実行した。cubes の内容として正しいものはどれか。
正解は「[1, 8, 27, 64, 125, 216, 343]」である。公式チュートリアルは「不変な文字列とは違って、リストは可変型ですので、要素を入れ替えられます」と記し、cubes[3] = 64 で誤った値 65 を置き換える例を示している。続けて「list.append() メソッドを使って、リストの末尾に新しい要素を追加できます」とあり、cubes.append(216) と cubes.append(7 ** 3) の後に cubes が [1, 8, 27, 64, 125, 216, 343] になる例を挙げている。7 ** 3 は 7 の 3 乗で 343 である。文字列と違い、インデックスへの代入でエラーにはならない。
同じ章で確認したい用語
到達チェック
- 可変を一文で説明できる
- 同じ章の似た用語と違いを説明できる
- 問題文の具体例から、可変に関係する論点を拾える
- 関連問題を解き、誤答した選択肢の理由を確認できる
執筆: ミナト編集部(運営者情報を見る)