ホームページ  >  記事  >  バックエンド開発  >  Python のモジュール string.py の詳細な説明

Python のモジュール string.py の詳細な説明

高洛峰
高洛峰オリジナル
2017-03-13 09:30:501573ブラウズ

この記事は主に Python のモジュール string.py の詳細な説明に関する関連情報を紹介しており、必要な方は以下を参照してください。

1. 使用法

文字列定数:


import string

print(string.ascii_lowercase)
print(string.ascii_uppercase)
print(string.ascii_letters)
print(string.digits)
print(string.hexdigits)
print(string.octdigits)
print(string.punctuation)
print(string.printable)

結果


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

2. late クラス:

実際には、Template クラス, フォーマットされた文字列と文字列オブジェクトformat()方法做对比,可以帮助更好地理解。首先,新建一个python文件:string_template.py,

を使用して、その中に次の内容を書き込むことができます:


import string

values = {&#39;var&#39;: &#39;foo&#39;}

t = string.Template("""
Variable : $var
Escape  : $$
Variable in text: ${var}iable
""")

print(&#39;TEMPLATE:&#39;, t.substitute(values))

s = """
Variable : %(var)s
Escape  : %%
Variable in text: %(var)siable
"""

print(&#39;INTERPOLATION:&#39;, s % values)

s = """
Variable : {var}
Escape  : {{}}
Variable in text: {var}iable
"""

print(&#39;FORMAT:&#39;, s.format(**values))

次に、Pythonコマンドラインに次のように入力します:


$ python string_template.py

結果


TEMPLATE:
Variable : foo
Escape  : $
Variable in text: fooiable

INTERPOLATION:
Variable : foo
Escape  : %
Variable in text: fooiable

FORMAT:
Variable : foo
Escape  : {}

3 つすべてに文字列の書式設定の効果があることがわかります。 3 つの修飾子が異なるだけです。 Template クラスの良い点は、 を通じて クラスを継承でき、インスタンス化後にその修飾子をカスタマイズでき、さらに 変数 の名前形式の 正規表現 を定義できることです。

string_template_advanced.py の例:


import string
class MyTemplate(string.Template):
 delimiter = &#39;%&#39;
 idpattern = &#39;[a-z]+_[a-z]+&#39;


template_text = &#39;&#39;&#39;
 Delimiter : %%
 Replaced : %with_underscore
 Igonred : %notunderscored
&#39;&#39;&#39;


d = {
 &#39;with_underscore&#39;: &#39;replaced&#39;,
 &#39;notunderscored&#39;: &#39;not replaced&#39;,
}

t = MyTemplate(template_text)
print(&#39;Modified ID pattern:&#39;)
print(t.safe_substitute(d))

まず、上記の Python ファイルについて説明します。その中で MyTemplate クラスが定義されており、文字列の Template クラスを継承し、その 2 つのフィールドをオーバーロードします。 Delimiter は修飾子で、以前の '$' の代わりに '%' として指定されます。 次に、idpattern は変数の形式指定です。

結果

$ python string_template_advanced.py
Modified ID pattern:

 Delimiter : %
 Replaced : replaced
 Igonred : %notunderscored

notunderscored が置き換えられなかったのはなぜですか?その理由は、クラスを定義するときに、idpattern にアンダースコア '_' を指定するように指定していますが、

変数名

にはアンダースコアがないため、置換することができません。

以上がPython のモジュール string.py の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。