Pythonの「sep」とは?print()で区切り文字を指定する方法を初心者向けに解説

Pythonでプログラムを書いていると、次のようなコードを見かけることがあります。
print("Python", "入門", sep=":")
実行すると、
Python:入門
と表示されます。
この sep は、print()で複数の値を表示するとき、その値と値の間に入れる文字を指定するための引数です。
この記事では、Pythonの sep の意味や使い方、end との違い、リストと組み合わせる方法などを初心者向けに解説します。
Pythonのsepとは?
Pythonの sep は、print()で複数の値を表示するときの区切り文字(separator)を指定するための引数です。
基本的な使い方は次のとおりです。
print(値1, 値2, sep="区切り文字")
例えば、
print("Python", "Java", "Ruby", sep=", ")
とすると、
Python, Java, Ruby
と表示されます。
sep を指定しない場合、デフォルトでは半角スペースが使われます。Pythonの print() は複数の引数を受け取り、それらの間に sep を入れて出力します。(Python Pool)
sepの基本的な使い方
まずは最も基本的な例です。
print("Python", "Java")
実行結果:
Python Java
これは sep を指定していないため、値と値の間に半角スペースが入っています。
次のように sep を指定できます。
print("Python", "Java", sep="-")
実行結果:
Python-Java
この場合、- が区切り文字として使われます。
sepでカンマ区切りにする
データをカンマで区切って表示したい場合にも sep が便利です。
print("Python", "Java", "Ruby", sep=",")
実行結果:
Python,Java,Ruby
カンマの後ろにスペースを入れたい場合は、
print("Python", "Java", "Ruby", sep=", ")
とします。
実行結果:
Python, Java, Ruby
sepで「|」区切りにする
値を見やすく区切りたい場合は、| を使うこともできます。
print("名前", "年齢", "職業", sep=" | ")
実行結果:
名前 | 年齢 | 職業
表形式のデータを簡単に確認したいときなどに便利です。
sepで「-」を指定する
日付などを表示するときにも使えます。
print("2026", "09", "14", sep="-")
実行結果:
2026-09-14
このように、複数の値を一定のルールで区切って表示できます。
sepに複数の文字を指定する
sep には1文字だけでなく、複数の文字からなる文字列も指定できます。
print("Python", "入門", sep=" → ")
実行結果:
Python → 入門
例えば次のような使い方もできます。
print("東京", "大阪", "福岡", sep=" ⇨ ")
実行結果:
東京 ⇨ 大阪 ⇨ 福岡
sep=””で区切り文字をなくす
sep に空文字列 "" を指定すると、値と値の間に何も入れません。
print("Python", "入門", sep="")
実行結果:
Python入門
文字列をそのまま連続して表示したい場合に使えます。
例えば、
print("2026", "09", "14", sep="")
なら、
20260914
となります。
sep=”\n”で改行する
sep にはエスケープシーケンスも指定できます。
例えば \n は改行を表します。
print("Python", "Java", "Ruby", sep="\n")
実行結果:
Python
Java
Ruby
つまり、sep="\n" とすることで、複数の値を1行ずつ表示できます。
sep=”\t”でタブ区切りにする
\t はタブを表します。
print("名前", "年齢", "職業", sep="\t")
実行結果は、おおよそ次のようになります。
名前 年齢 職業
データを列のように並べて確認するときに便利です。
sepとendの違い
Python初心者が混同しやすいのが sep と end です。
簡単に覚えるなら、
-
sep→ 値と値の間 -
end→ 最後の値の後
です。
例えば、
print("Python", "入門", sep="-")
では、
Python-入門
となります。
- は2つの値の間に入っています。
一方、
print("Python", end="!")
では、
Python!
となります。
! は最後に追加されています。
print() の sep のデフォルト値はスペース、end のデフォルト値は改行です。(Python Pool)
sepとendを同時に使う
sep と end は同時に指定できます。
print("Python", "Java", sep=" / ", end="!")
実行結果:
Python / Java!
この場合、
Python / Java!
↑ ↑
sep end
という関係です。
リストとsepを組み合わせる
sep を使うときに注意したいのがリストです。
例えば、
languages = ["Python", "Java", "Ruby"]
print(languages, sep=", ")
としても、
['Python', 'Java', 'Ruby']
となります。
これは、print() に渡している値がリスト1個だからです。
sep は複数の引数の間に入るため、リストの要素の間には入りません。
リストをsepで区切って表示する方法
リストの要素を sep で区切りたい場合は、アンパック演算子 * を使います。
languages = ["Python", "Java", "Ruby"]
print(*languages, sep=", ")
実行結果:
Python, Java, Ruby
*languages によって、リストの要素が print() の複数の引数として渡されます。(Stack Overflow)
これは sep を覚えるうえで非常に重要なポイントです。
数値にもsepを使える
sep は文字列だけを表示するときに使うものではありません。
例えば、
print(1, 2, 3, sep="-")
とできます。
実行結果:
1-2-3
また、
year = 2026
month = 9
day = 14
print(year, month, day, sep="/")
なら、
2026/9/14
と表示できます。
print() は渡された値を文字列として出力するため、文字列と数値を組み合わせることもできます。(Python Pool)
sepを使うとコードが簡潔になる
例えば、次のような出力を考えます。
Python - Java - Ruby
文字列を + でつなぐ方法もありますが、
print("Python" + " - " + "Java" + " - " + "Ruby")
sep を使えば、
print("Python", "Java", "Ruby", sep=" - ")
と書けます。
値が増えるほど sep を使ったほうがシンプルになります。
sepとjoin()の違い
sep と似た用途で使われるのが join() です。
例えば、
languages = ["Python", "Java", "Ruby"]
を、
Python, Java, Ruby
としたい場合、
print(*languages, sep=", ")
と書けます。
一方、文字列そのものを作りたい場合は join() を使います。
text = ", ".join(languages)
print(text)
結果:
Python, Java, Ruby
大きな違いは、sep はprint()で出力するときの区切り、join() は区切り文字を使って新しい文字列を作ることです。(Python Pool)
例えば、
text = ", ".join(languages)
なら、作られた文字列を変数 text に保存できます。
sepでよくある間違い
1つの値にsepを指定する
次のコードを考えてみましょう。
name = "Python"
print(name, sep="-")
この場合、- は表示されません。
なぜなら、sep は値と値の間に入るものだからです。
値が1つしかないため、区切る場所がありません。
print("Python", "入門", sep="-")
なら、
Python-入門
となります。
改行を消すためにsepを使う
例えば、
print("Python", sep="")
としても、改行は消えません。
改行を制御したい場合は end を使います。
print("Python", end="")
print("入門")
実行結果:
Python入門
sepは値と値の間、endは最後と覚えておきましょう。
Pythonのsepまとめ
Pythonの sep は、print() で複数の値を表示するときの区切り文字を指定するための引数です。
基本構文は次のとおりです。
print(値1, 値2, 値3, sep="区切り文字")
代表的な使い方をまとめると、次のようになります。
| 書き方 | 実行結果 |
|---|---|
print("A", "B") |
A B |
print("A", "B", sep="-") |
A-B |
print("A", "B", sep=", ") |
A, B |
print("A", "B", sep="") |
AB |
print("A", "B", sep="\n") |
A → B |
| `print(“A”, “B”, sep=” | “)` |
特に重要なのは、
sep
は値と値の間、
end
は最後の値の後
という違いです。
また、リストの要素を区切って表示したい場合は、
languages = ["Python", "Java", "Ruby"]
print(*languages, sep=", ")
のように * と sep を組み合わせると便利です。
Pythonの print() を使った出力処理では非常によく使う機能なので、sep と end の違いをセットで覚えておきましょう。(Python Pool)
Pythonの関数・メソッドの全体像はPython基本関数・メソッド完全一覧にまとめています。





