提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
方法一
采用Python内置函数chr()来生成大小写字母及数字,chr()可将ASCII码转换成对应的Unicode字符
生成0-9数字
#0的ASCII码为48,9的ASCII码为57
number_list = [chr(i) for i in range(48,58)]
输出结果:
[‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’]
生成A-Z大写字母
#A的ASCII码为65,Z的ASCII码为90
upper_list = [chr(i) for i in range(65,91)]
输出结果:
[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘O’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’, ‘Y’, ‘Z’]
生成a-z小写字母
#a的ASCII码为97,z的ASCII码为122
lower_list = [chr(i) for i in range(97,123)]
输出结果:
[‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’, ‘l’, ‘m’, ‘n’, ‘o’, ‘p’, ‘q’, ‘r’, ‘s’, ‘t’, ‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’]
完整代码如下:
#这里\的意思是,该行还没写完,接着下一行的内容
list1 = [chr(i) for i in range(48,58)] \
+ [chr(i) for i in range(97,123)] \
+ [chr(i) for i in range(65,91)]
code_set = set()#使用集合实现不重复的验证码
for i in range(5):
#join()函数:用于连接字符串序列,"".join():直接连接,不用指定连接符或空格拼接字符
#random.choices():可随机选择多个元素,返回一个新列表,k=6:要选择的元素数量,默认值为1
code = "".join(random.choices(list1,k = 6))
code_set.add(code)
print(code_set)
方法二
采用String模块中的ascii_letters和digits方法来生成所有字母和数字。其中,ascii_letters:生成所有大小写字母;digits:生成0~9数字。
生成字母a-z和A-Z,以及生成数字0-9
chars = string.ascii_letters + string.digits
运行结果:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
完整代码如下:
import random
import string
chars = string.ascii_letters + string.digits #chars是字符串
code_set = set()
for i in range(5):
code = random.choices(chars,k = 6)
code_set.add("".join(code))
print(code_set)