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基本関数・メソッド完全一覧にまとめています。

対面・無料|東京・永田町で毎週土曜日13時

1回の参加で、プログラミングの構造がわかる

ゼロからはじめるPython入門講座

8年間・累計600回開催/これまで全国で2万人以上が参加

「やはり対面で聞けるのはとても気づきがあり、価値があると思います」

参加者の声

  • 本当に初心者からの講座です。プログラミングに触ったことがなくて大丈夫です
  • 対面だから、その場で聞けます。つまずいた所を持ち帰らずに解決できます
  • 講座は1時間。そのあとも残って学習を続けられ、講師にも質問できます
  • 独学で挫折した方も。糸口が見つかって、講座のあと会員になる方が多くいます

無料で参加する|開催日程を見る

参加費は無料です