Python
 Computer >> コンピューター >  >> プログラミング >> Python

【初心者向け】Pythonの文字列操作を徹底解説!stringモジュール・format()メソッド・テンプレートの使い方

Pythonには、文字列関連の処理に便利な標準ライブラリ string モジュールが用意されています。このモジュールには、文字列に関するさまざまな定数やメソッド、クラスが含まれており、日常的なテキスト処理を効率化できます。

stringモジュールを使用するには、まずコード内でインポートする必要があります。

import string

stringモジュールで使える主な定数

stringモジュールには、よく使われる文字セットが定数として定義されています。代表的な定数とその値は以下の通りです。

番号定数名と値
1string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
(英小文字すべて)
2string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
(英大文字すべて)
3string.ascii_letters
ascii_lowercase と ascii_uppercase を連結したもの
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
4string.digits
'0123456789'
(数字0〜9)
5string.hexdigits
'0123456789abcdefABCDEF'
(16進数に使われる文字)
6string.octdigits
'01234567'
(8進数に使われる文字)
7string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
(ASCII記号類)
8string.printable
印刷可能なASCII文字すべて。ascii_letters、punctuation、digits、whitespace の集合です。
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
9string.whitespace
'\t\n\r\x0b\x0c'
(空白文字:タブ、改行など)

実行例

import string
print(string.hexdigits)
print(string.ascii_uppercase)
print(string.printable)

出力結果

0123456789abcdefABCDEF
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

文字列フォーマット(format()メソッド)

Pythonの組み込み文字列クラスは、format() メソッドによって複雑な変数置換や値の整形をサポートしています。

基本的な構文は次の通りです。

'{} {}'.format(a, b)

波括弧 {} で囲まれた部分に、引数 a と b の値が順番に埋め込まれます。波括弧の中には位置指定の番号や変数名を記述することも可能です。

パディング(余白の詰め)

format()メソッドを使うと、テキストにパディング(余白)を設定することもできます。基本構文は以下の通りです。

'{:(文字) >(幅)}'.format('文字列')

この例では、指定した文字を使って、の分だけ右寄せ(>)でパディングします。< を使えば左寄せ、^ を使えば中央揃えになります。

文字列の切り詰め(トリミング)

format()メソッドは、指定した長さで文字列を切り詰めることもできます。

'{:.長さ}'.format('文字列')

文字列は指定された長さまで切り詰められます。

実行例

print('The Name is {} and Roll {}'.format('Jhon', 40))
print('The values are {2}, {1}, {3}, {0}'.format(50, 70, 30, 15)) # 位置パラメータを使用
print('Value 1: {val1}, value 2: {val2}'.format(val2 = 20, val1=10)) # 変数名を使用

# 文字列のパディング
print('{: >{width}}'.format('Hello', width=20))
print('{:_^{width}}'.format('Hello', width=20)) # 中央揃えで '_' でパディング

# 指定した長さで文字列を切り詰める
print('{:.5}'.format('Python Programming')) # 先頭5文字のみ取得

出力結果

The Name is Jhon and Roll 40
The values are 30, 70, 15, 50
Value 1: 10, value 2: 20
               Hello
_______Hello________
Pytho

文字列テンプレート(Templateクラス)

Templateクラスを使うと、よりシンプルな方法で文字列の置換を行えます。テンプレートでは $identifier の形式でプレースホルダーを定義し、見つかった識別子が新しい値に置き換えられます。

基本的な使い方は以下の通りです。

myStr = string.Template("$a will be replaced")
myStr.substitute(a = 'XYZ')

この例では、文字列中の $a が 'XYZ' に置き換えられます。辞書(dict)を使って置換を行うこともできます。

実行例

my_template = string.Template("The value of A is $X and Value of B is $Y")
my_str = my_template.substitute(X = 'Python', Y='Programming')
print(my_str)

my_dict = {'key1' : 144, 'key2' : 169}
my_template2 = string.Template("The first one $key1 and second one $key2")
my_str2 = my_template2.substitute(my_dict)
print(my_str2)

出力結果

The value of A is Python and Value of B is Programming
The first one 144 and second one 169

まとめ

Pythonのstringモジュールを活用すれば、英字・数字・記号などの文字セットを簡単に扱えます。また、format()メソッドによる柔軟な文字列フォーマットや、Templateクラスによるシンプルな置換処理を組み合わせることで、可読性が高く保守しやすいコードを書くことができます。日々の開発でぜひ活用してみてください。

  1. Python 3で辞書を使って文字列をフォーマットする方法

    Pythonでは、辞書(dict)を活用して文字列への値の埋め込み(補間)を行うことができます。この構文では、%と変換文字の間の括弧内に、辞書のキー名を指定します。例えば、キーcostに格納された浮動小数点数を$xxxx.xxの形式で表示したい場合は、表示したい位置に$%(cost).2fと記述します。辞書を使った文字列フォーマットの基本例以下は、辞書を使った文字列フォーマットで、文字列と数値を同時に補間・整形する例です。>>> print(%(language)s has %(number)03d quote types. % {language: Python, numb

  2. Pythonの文字列操作入門|作成・インデックス・スライス・フォーマットの基本をわかりやすく解説

    文字列はPythonにおける最も基本的なデータ型のひとつです。英字・数字・記号など、任意の文字を組み合わせたものが文字列として扱われます。このチュートリアルでは、文字列の作成方法から、インデックスやスライスによる操作、フォーマットの使い方まで、さまざまな場面で役立つ基本操作を体系的に解説します。 Pythonで新しい文字列を作成する Pythonで文字列を作成するのはとても簡単です。シングルクォート()またはダブルクォート()で文字の並びを囲むだけで宣言できます。また、複数行にわたる長い文字列を作りたい場合は、トリプルクォート( または )を使用します。 double_quotes = My