String模块ascii_letters和digits

Python3中String模块ascii_letters和digits方法,其中ascii_letters是生成所有字母,从a-z和A-Z,digits是生成所有数字0-9。

示例如下:

Python
>>> chars = string.ascii_letters + string.digits
>>> print(chars)
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

生成所有字母和数字干什么?在哪个场景中会用到呢,举个例子:比如生成激活码(优惠券),激活码一般都是字母和数字组成的,首先要有一个所有字母和数字的字符串,然后随机取出几个字母或数字。

Python

import random, string

def rand_str(num, length=7):
    f = open('Activation_code.txt', 'w')
    for i in range(num):
        chars = string.ascii_letters + string.digits
        s = [random.choice(chars) for i in range(length)]
        f.write('{0}
'.format(''.join(s)))
    f.close()
 
 
if __name__ == '__main__':
    rand_str(200)

执行结果片段:

wz0dajI
25vlulV
zLHkx9Y
GGzu0Ip
RilbYKW
4WZL2IC
4syobYw
kCMky7O
oUPde55
KrMRmUX
Ct0W2Pm
wMwpPdk
ydPuy9h
Z7vo3r9