この記事では主に 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)
Result
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 0123456789abcdefABCDEF 01234567 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,- ./:;<=>?@[\]^_`{|}~
2. テンプレート クラス:
実際には、テンプレートクラスはフォーマットされた文字列と文字列オブジェクト format()
方法做对比,可以帮助更好地理解。首先,新建一个python文件:string_template.py
,
で使用でき、その中に次の内容を記述します:
import string values = {'var': 'foo'} t = string.Template(""" Variable : $var Escape : $$ Variable in text: ${var}iable """) print('TEMPLATE:', t.substitute(values)) s = """ Variable : %(var)s Escape : %% Variable in text: %(var)siable """ print('INTERPOLATION:', s % values) s = """ Variable : {var} Escape : {{}} Variable in text: {var}iable """ print('FORMAT:', s.format(**values))
次に、Python コマンドラインに次のように入力します:
$ python string_template.py
Result
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 = '%' idpattern = '[a-z]+_[a-z]+' template_text = ''' Delimiter : %% Replaced : %with_underscore Igonred : %notunderscored ''' d = { 'with_underscore': 'replaced', 'notunderscored': 'not replaced', } t = MyTemplate(template_text) print('Modified ID pattern:') print(t.safe_substitute(d))
まず、上記の Python ファイルについて説明します。 MyTemplate クラスが内部で定義されており、文字列の Template クラスを継承し、その 2 つのフィールドをオーバーロードします。 Delimiter は修飾子で、以前の '$' の代わりに '%' として指定されます。 次に、idpattern は変数の形式指定です。
Result
$ python string_template_advanced.py Modified ID pattern: Delimiter : % Replaced : replaced Igonred : %notunderscored
notunderscored が置き換えられないのはなぜですか?その理由は、クラスを定義するときに、idpattern にアンダースコア '_' を指定するように指定していますが、変数名にはアンダースコアがないため、置換することができません。
以上がPython のモジュール string.pyの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。