この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:5
ページ更新者:guest
更新日時:2026-06-11 07:12:00

タイトル: 文字列
SEOタイトル: Python 文字列の組み込み関数 完全ガイド(str / len / format / repr / 型変換 / よく使うメソッド)

この記事の要点
  • Python の文字列関連の組み込み関数には str() / len() / format() / repr() / ord() / chr() / ascii() などがある
  • 文字列を作る/長さを測る/表示用に整形するのは全て組み込み関数で完結する
  • 組み込み関数str のメソッドは別物 — str.upper() はメソッド、str(123) は関数
  • Python 3 の文字列はすべて Unicode (str 型)。バイト列は bytes 型で別管理
  • f-string (f"...") と format() は機能が重なるが、Python 3.6 以降は原則 f-string が推奨

Python の文字列まわりの組み込み関数とは

Python では文字列を扱う処理の多くが組み込み関数として提供されています。組み込み関数は import 不要でいつでも呼び出せます。本ページでは文字列に関連する代表的な組み込み関数をまとめます。メソッド"abc".upper() など)は別ページで扱います。

主要な文字列系組み込み関数 一覧

関数役割
str(x)オブジェクトを文字列化str(123)"123"
len(s)文字列長len("abc")3
format(v, spec)書式整形format(3.14, ".1f")"3.1"
repr(x)デバッグ用文字列表現repr("a")"'a'"
ascii(x)非 ASCII を \\u エスケープascii("あ")"'\\u3042'"
ord(c)文字 → Unicode コードポイントord("A")65
chr(n)コードポイント → 文字chr(65)"A"
bin(n) / oct(n) / hex(n)整数を 2/8/16 進文字列にhex(255)"0xff"
input(prompt)標準入力から 1 行読む(戻り値は文字列)name = input("name? ")
print(*objs)文字列化して標準出力に出すprint("hello")

str() — 文字列化

str() は任意のオブジェクトを人間が読みやすい形式の文字列に変換します。数値、リスト、辞書、自作クラスのインスタンスにも使えます。

str(123)         # "123"
str(3.14)        # "3.14"
str(True)        # "True"
str(None)        # "None"
str([1, 2, 3])   # "[1, 2, 3]"
str({"a": 1})    # "{'a': 1}"

# 文字に対しては変化なし
str("hello")     # "hello"

# エンコード指定(bytes → str)
str(b"abc", "utf-8")   # "abc"

関連: int("123") / float("3.14")逆方向の変換です。

len() — 文字列の長さ

文字列の文字数を返します。Python 3 ではマルチバイト文字も1 文字 = 1 として数えられます。

len("hello")     # 5
len("あいう")    # 3  ← 文字数(Python 3 は Unicode)
len("")          # 0

# 改行も 1 文字
len("a\nb")      # 3

# bytes は「バイト数」
len("あ".encode("utf-8"))   # 3 (UTF-8 では 3 バイト)

format() と f-string

format(value, spec) は値を書式指定で文字列化します。Python 3.6 以降はf-stringf"{value:spec}")が同じことをよりシンプルに書けるため、新規コードでは f-string が推奨です。

# format() 関数
format(3.14159, ".2f")     # "3.14"
format(255, "08b")          # "11111111" → ゼロ埋め 8 桁の 2 進数
format(1000000, ",d")       # "1,000,000"

# 同じことを f-string で
x = 3.14159
f"{x:.2f}"                  # "3.14"
f"{255:08b}"                # "11111111"
f"{1000000:,d}"             # "1,000,000"

# 名前を埋め込む
name = "Alice"; age = 30
f"name={name}, age={age}"   # "name=Alice, age=30"

# str.format() メソッド版
"{}-{}".format("a", "b")    # "a-b"
"{name}:{age}".format(name="A", age=20)   # "A:20"

repr() — デバッグ用表現

repr()デバッグ用の正確な表現を返します。文字列の場合はクォート付きで返るのが str() との大きな違いです。

s = "hello\nworld"
str(s)
# hello
# world
repr(s)
# "'hello\\nworld'"

# 数値はどちらも同じ
str(123)    # "123"
repr(123)   # "123"

# f-string で !r 指定すると repr が呼ばれる
name = "Alice"
f"{name!r}"   # "'Alice'"
f"{name!s}"   # "Alice"

ord() / chr() — 文字とコードの相互変換

1 文字を Unicode コードポイント(整数)と相互変換します。文字コード関連の処理で必須です。

ord("A")      # 65
ord("a")      # 97
ord("あ")     # 12354

chr(65)       # "A"
chr(12354)    # "あ"
chr(0x1F600)  # "😀"   絵文字も

# 例: アルファベットを 1 つずらす
"".join(chr(ord(c) + 1) for c in "abc")  # "bcd"

ascii() — 非 ASCII をエスケープ

ascii()repr() に似ていますが、非 ASCII 文字を全て \\u エスケープします。ログを ASCII のみに保ちたい場合に便利です。

ascii("hello")   # "'hello'"
ascii("あ")      # "'\\u3042'"
ascii("café")    # "'caf\\xe9'"

bin() / oct() / hex() — 進数変換

bin(10)    # "0b1010"
oct(10)    # "0o12"
hex(255)   # "0xff"

# プレフィックスを外す
f"{255:b}"   # "11111111"
f"{255:o}"   # "377"
f"{255:x}"   # "ff"

# 逆変換は int(s, base)
int("0xff", 16)   # 255
int("1010", 2)    # 10

input() / print() — 標準入出力

# 標準入力を 1 行読む(戻り値は str)
name = input("お名前は? ")
print(f"こんにちは {name} さん")

# 数値が欲しいなら int() / float() で型変換
age = int(input("年齢は? "))

# print のオプション
print("a", "b", sep="-")        # "a-b"
print("loading", end="...")     # 末尾の改行を抑制
print("err", file=sys.stderr)   # 標準エラーへ

組み込み関数とメソッドの違い

文字列操作には組み込み関数str 型のメソッドの 2 系統があります。混同しがちなので整理します。

系統呼び方
組み込み関数関数名(値)len("abc") / str(123)
str メソッド値.メソッド名()"abc".upper() / "abc".split(",")

大文字化、置換、分割、検索などはメソッド側に揃っています。

関連

  • str 型(文字列クラス)
  • f-string / フォーマット文字列リテラル
  • bytes 型 / encode / decode
  • print 関数 / input 関数
  • 組み込み関数 一覧