Pythonの文字列モジュール

PythonのStringモジュールには、文字列の操作に使用するいくつかの定数、ユーティリティ関数、クラスが含まれています。

Pythonの文字列モジュール

それはビルトインモジュールであり、その定数やクラスを使用する前にインポートする必要があります。

文字列のモジュール定数

「string」モジュールで定義されている定数を見てみましょう。

import string

# string module constants
print(string.ascii_letters)
print(string.ascii_lowercase)
print(string.ascii_uppercase)
print(string.digits)
print(string.hexdigits)
print(string.whitespace)  # ' \t\n\r\x0b\x0c'
print(string.punctuation)

出力:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
0123456789abcdefABCDEF
 	

!"#$%&'()*+,-./:;?@[\]^_`{|}~
python string module constants

string capwords() 関数

Pythonのstringモジュールには、capwords(s, sep=None)という1つのユーティリティ関数が含まれています。この関数は、指定された文字列をstr.split()を使用して単語に分割し、次にstr.capitalize()関数を使用して各単語の先頭を大文字にします。最後に、大文字になった単語をstr.join()を使用して結合します。オプションの引数sepが提供されないかNoneの場合、先頭と末尾の空白が削除され、単語は単一の空白で区切られます。提供された場合、区切り文字は単語の分割と結合に使用されます。

s = '  Welcome TO  \n\n JournalDev '
print(string.capwords(s))
python string capwords

Pythonの文字列モジュールのクラス

Pythonのstringモジュールには、FormatterとTemplateという2つのクラスが含まれています。

フォーマッター

Formatterクラスは、str.format()関数とまったく同じように振る舞います。このクラスは、独自のフォーマット文字列の構文を定義するためにサブクラス化したい場合に便利です。Formatterクラスの使用例を簡単な例で見てみましょう。

from string import Formatter

formatter = Formatter()
print(formatter.format('{website}', website='JournalDev'))
print(formatter.format('{} {website}', 'Welcome to', website='JournalDev'))

# format() behaves in similar manner
print('{} {website}'.format('Welcome to', website='JournalDev'))

出力:

Welcome to JournalDev
Welcome to JournalDev
python string module Formatter class

テンプレート

このクラスは、PEP 292で説明されているより簡単な文字列の置換を行うための文字列テンプレートを作成するために使用されます。複雑なフォーマットルールが必要ないアプリケーションで国際化(i18n)を実装する際に便利です。

from string import Template

t = Template('$name is the $title of $company')
s = t.substitute(name='Pankaj', title='Founder', company='JournalDev.')
print(s)
Python string module Template class

私たちのGitHubリポジトリから、完全なPythonスクリプトとさらにPythonの例をチェックアウトすることができます。

参照:公式ドキュメンテーション

コメントを残す 0

Your email address will not be published. Required fields are marked *