一、String模块简介
String模块提供我们日常要使用的字符,并且把字符进行分类,我们编程过程中如果遇到要使用字符,可以很方便的通过导入该模块来使用字符。比如如果我们要写一个判断用户输入的字符是不是a-zA-Z字符,我们就可以通过使用该模块提供的功能来很容易的完成。
二、String模块内容
>>> import string
>>> dir(string)
['Formatter',
'Template',
'_ChainMap',
'_TemplateMetaclass',
'__all__',
'__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'_re',
'_string',
'ascii_letters',
'ascii_lowercase',
'ascii_uppercase',
'capwords',
'digits',
'hexdigits',
'octdigits',
'printable',
'punctuation',
'whitespace']
在上面的输出中,我们一般只关心以小写字母开头属性。
下面我们一一来讲解:
1、string.ascii_letters
>>> import string
>>> print(string.ascii_letters)
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
通过上面的输出可以看出该模块的ascii_letters属性是打印大小写字母a-zA-Z。
应用:我们可以利用这个属性来判断用户的输入是否符合要求
我们写一个函数来判断用户的输入是否符合要求
>>> def check(arg):
'''我们可以在函数中导入要使用的模块'''
import string
if arg in string.ascii_letters:
print('你的输入符合要求!')
else:
print('你的输入不符合要求!')
2、string.ascii_lowercase 和 string.ascii_uppercase
跟上面一样,我们先在终端试着输出以上两个属性
>>> import sring
>>> print(string.ascii_lowercase)
abcdefghijklmnopqrstuvwxyz
>>> print(string.ascii_uppercase)
ABCDEFGHIJKLMNOPQRSTUVWXYZ
通过上面的输出我们可以发现其实这两个属性就是string.ascii_letters属性的细分而已,它可以让我们缩小字符范围,用法几乎都一样的。
3、string.digits
>>> import string
>>> print(string.digits)
0123456789
该属性就是0-9的字符数字
4、string.hexdigits
>>> import string
>>> print(string.hexdigits)
0123456789abcdefABCDEF
该属性就是16进制数组成的字符串
5、string.octdigits
>>> import string
>>> print(string.hexdigits)
01234567
该属性就是8进制数组成的字符串
6、string.printable
>>> import string
>>> print(string.printable)
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c
该属性就是任何可以打印出来的字符组成的字符串
7、string.punctuation
>>> import string
>>> print(string.punctuation)
!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~
该属性就是标点符号组成的字符串
8、string.whitespace
>>> import string
>>> print(string.whitespace)
\t\n\r\x0b\x0c
可以看出该属性就是一些可以打印,但是不能轻易用肉眼看出的字符,比如制表符、换行符、回车符。
总结
该模块虽然提供几个简单的关于字符的属性,但是能很大方便的提高我们的编程效率。平时我们要用到某些字符集的时候,只需要输入两三行代码,而不用手动输入一堆让人眼花缭乱的字符。