4.5.2 Random库的应用

4.5.2 Random库的应用

【案例4-16】 随机验证码。

请编写程序,生成10个一组的随机验证码。具体要求如下。

①使用Random库,采用10作为随机数种子。

②验证码的字符由下列字符串中的字符组成:abcdefghijklmnopqrstuvwxyzABCDEFGH IJKLMNOPQRSTUVWXYZ1234567890。

③每个验证码的长度都固定为10个字符。

④程序运行每次产生10个验证码,每个验证码一行。

⑤每次产生的10个验证码首字符不能一样,且不能以数字开头。

⑥按行输出10个验证码。

案例分析:

将组成验证码的字符作为字符串赋给变量,通过字符切片的方式从中获取。虽然知道一组验证码有10个,但是每次生成的验证码并不一定符合要求,所以不能用遍历循环,而是使用不定循环来控制验证码生成的数量。

每个验证码都由10个符号组成,且相互间的首字符不能相同,也不能是数字。解决方法是用一个序列变量来存储首字符,初始值为10个数字。

验证码由10个符号组成,循环10次实现。每次循环都从字符串中随机选取一个符号。

每次生成一个验证码,先将首字符与变量中的值进行匹配,如果已存在,则不作处理,如果不存在,则生成的验证码是有效的,将该验证码的首字符加入存首字符的变量中,并将这个验证码输出。

运行结果: