AI資格ドリル
資格を選ぶ↓

用語比較

セイウチ演算子 := と代入文 = の違い|式の中での代入をPython3エンジニア認定基礎試験で判断する

代入文 = は、文として値を名前に結びつけます。セイウチ演算子 := は、式の中で代入を行い、代入した値をそのまま式の値として返します。公式チュートリアル5.7は、Pythonでは式の中での代入はセイウチ演算子 := を使って明示的に行う必要があると述べています。

Python 3 エンジニア認定基礎試験では、式の中で代入するにはどの演算子を使うか、= と := のどちらが条件式の中で書けるか、なぜ明示が要るのかを選ぶ問題が想定されます。条件式の演算子(in・is・and・or・not)と同じ章で出るため、まとめて確認します。

このページは、= と := を「どちらも代入」とだけ覚えている人を対象にしています。書ける場所、式としての値、書き間違いを防ぐ仕組みという3つの軸で、公式チュートリアルの記載と手元での実行結果を整理します。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。Python3エンジニア認定基礎試験の一次情報確認日: 2026-09-18。

結論

代入文 =

文として値を名前に結びつける。if の条件の中に書くとSyntaxErrorになる。

セイウチ演算子 :=

式の中で代入を明示的に行う。代入した値が式の値になる。Cの = と == の取り違えのような問題を避けられる。

違いを表で確認

比較軸代入文 =セイウチ演算子 :=
書ける場所文として単独で書く。if の条件式の中には書けない式の中に書ける。if や while の条件の中でも使える
式としての値代入文は値を返す式ではない代入した値がそのまま式の値になる
公式チュートリアルの位置づけ従来の代入として、特別な説明なしに使われる5.7で「式の中での代入はセイウチ演算子 := を使用して明示的に行う」と説明される
書き間違いの防止条件の中に = を書くとSyntaxErrorになり、== との取り違えに気づける式の中での代入が明示的なので、== のつもりで = を書く誤りと混ざらない
選択肢で探すキーワード代入文、変数に値を結びつけるセイウチ演算子、:=、式の中での代入

Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)

試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。

PR

ほかの資格を含む参考書・問題集の一覧を見る

どこで迷っているかを切り分ける

01

条件式の中でも = で代入できると考える人

公式チュートリアル5.7は、Pythonでは式の中での代入はセイウチ演算子 := で明示的に行うと説明しています。Python 3.9.6で if n = 3: と書くとSyntaxErrorになります。

02

:= を単独の文として書こうとする人

Python 3.9.6で x := 5 だけを書くと、SyntaxErrorになります。式の値を使う場所で、(x := 5) のように丸括弧で囲んで書きます。

03

== と := の見た目が似ていて取り違える人

== は値が等しいかを調べる比較で、:= は右辺の値を左辺の名前に代入します。比較だけをしたいところに := は書きません。

問題文から答えを選ぶ手順

  1. 1

    書く場所が文か式かを確認する

    条件式や式の途中なら、代入には := を使います。単独の文なら = です。

  2. 2

    代入した値をその場で使うかを確認する

    (n := len(a)) > 3 のように、代入と同時に比較などに使うなら := です。

  3. 3

    丸括弧の有無を確認する

    x := 5 を単独の文にするとSyntaxErrorです。(x := 5) のように丸括弧で囲めば式になります。

  4. 4

    比較なのか代入なのかを確認する

    == は比較、:= は代入です。公式チュートリアルは、:= を明示することで == が意図されていたところに = を入力する問題を避けられると説明しています。

試験での見分け方

  • 1式の中での代入にはセイウチ演算子 := を使う。
  • 2公式チュートリアル5.7は、Cとは異なり、式の中での代入を明示的に行う必要があると述べている。
  • 3条件の中に = を書くとSyntaxErrorになり、== との書き間違いは検出される。
  • 4(y := 10) + 1 は11になり、y には10が入る。代入した値が式の値になる。
  • 5x := 5 を単独の文にするとSyntaxErrorになる。

誤答しやすい選択肢

if の条件の中で = を使えば代入できると考える

修正: Python 3.9.6で if n = 3: はSyntaxErrorです。式の中での代入には := を使います。

:= を == の代わりに比較に使う

修正: := は代入です。比較は == です。Python 3.9.6で if (n := len(a)) > 3: は、n に4を代入したうえで、その値が3より大きいかを調べます。

x := 5 を普通の代入文として書く

修正: Python 3.9.6で x := 5 だけを書くとSyntaxErrorです。単独の文として代入するなら x = 5 と書きます。

セイウチ演算子がC言語と同じ書き方で使えると考える

修正: 公式チュートリアルは、Cとは異なり、式の中での代入は := で明示的に行う必要があると述べています。= を式の中に書くことはできません。

確認問題

Q1式の中で代入を行うための演算子は?

答え: セイウチ演算子 :=

公式チュートリアル5.7は、Pythonでは式の中での代入はセイウチ演算子 := を使用して明示的に行う必要があると説明しています。

Q2a = [1, 2, 3, 4] のとき、if (n := len(a)) > 3: print(n) の出力は?

答え: 4

len(a) の結果4が n に代入され、同時に式の値として3と比較されます。条件が真になり、n の値4が出力されます。

Q3(y := 10) + 1 を評価した結果と、そのあとの y の値は?

答え: 式の結果は11、y は10

:= は代入した値10を式の値として返すので、10 + 1 で11になります。y には10が残ります。

Q4公式チュートリアルが、式の中での代入を := で明示させる利点として挙げているのは?

答え: == が意図されていたところに = を入力してしまう、Cプログラムで発生する一般的な問題を避けられること

公式チュートリアル5.7は、この理由を直接書いています。

到達チェック

  • 式の中での代入に := を使うと言える
  • := が代入した値を式の値として返すと説明できる
  • 条件の中の = がSyntaxErrorになることを知っている
  • == は比較、:= は代入と区別できる

同じ資格で次に知りたいこと

よくある質問

Qセイウチ演算子とは?

A

式の中で代入を行う演算子 := です。公式チュートリアル5.7が、式の中での代入は明示的に行う必要があると説明する箇所で使われています。

Q= と := はどちらを使えばいい?

A

単独の文として代入するなら = です。条件式など式の中で代入するなら := です。

Qなぜ式の中の代入を := で明示させるの?

A

公式チュートリアルは、== が意図されていたところに = を入力してしまう、Cプログラムで発生する一般的な問題を避けられると説明しています。

Q:= は丸括弧が必要?

A

Python 3.9.6で x := 5 を単独の文にするとSyntaxErrorです。(x := 5) のように丸括弧で囲めば式になります。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)