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!"#$%&'()*+,- ./:;<=>?@[\]^_`{|}~
1.Template class:
In fact, the Template class can be compared with the usage of formatted string and the format() method of stringobject, which can help better understand. First, create a new python file: string_template.py,
Then write the following content in it:
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))
Then, enter in the python command line:
$ 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 : {}
You can see that all three can have the effect of formatting strings. It's just that the modifiers of the three are different. The good thing about the Template class is that it can inherit the class through , define its modifiers automatically after instantiation, and the name format of the variable can also be Definition of regular expression. For example, string_template_advanced.py example:
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))
First, explain the above python file. A class MyTemplate is defined inside, which inherits the Template class of string, and then overloads its two fields: Delimiter is the modifier, now specified as '%' instead of the previous '$' . Next, idpattern is the format specification for the variable.
Result
$ python string_template_advanced.py Modified ID pattern: Delimiter : % Replaced : replaced Igonred : %notunderscored
Why is notunderscored not replaced? The reason is that when we define the class, we specify that the underscore '_' should appear in the idpattern, but the variable name does not have an underscore, so it cannot be replaced.
The above is the detailed content of Introduction to Python module string.py. For more information, please follow other related articles on the PHP Chinese website!