09-11-周四_16-52-32
This commit is contained in:
59
project07/[任务书]验证码生成系统.md
Normal file
59
project07/[任务书]验证码生成系统.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# 验证码生成系统
|
||||
|
||||
## 需求
|
||||
|
||||
- 编写函数生成随机6位验证码,要求验证码的组成有0-9, a-z, A-Z
|
||||
|
||||
## 参考代码
|
||||
|
||||
```python
|
||||
import random
|
||||
|
||||
|
||||
def random_char_generator():
|
||||
# 生成可以用作验证码字符的列表
|
||||
word = []
|
||||
# 将0-9的字符串都加入这个列表中
|
||||
for i in range(10):
|
||||
word.append(str(i))
|
||||
|
||||
# 将a-z都加入这个列表中
|
||||
# 原理是取ascii码表中的97-122,然后转换为字符,存入列表
|
||||
for i in range(97,123):
|
||||
word.append(chr(i))
|
||||
|
||||
# 将A-Z都加入这个列表中
|
||||
for i in range(65, 91):
|
||||
word.append(chr(i))
|
||||
|
||||
# 生成器,用于从列表中随机获取内容
|
||||
while True:
|
||||
yield random.choice(word)
|
||||
|
||||
|
||||
def generate_verification_code(length):
|
||||
"""生成指定长度的验证码"""
|
||||
if length < 1:
|
||||
raise ValueError("验证码长度至少为1")
|
||||
|
||||
# 创建一个生成器对象
|
||||
gen = random_char_generator()
|
||||
|
||||
verification_code = ""
|
||||
for i in range(length):
|
||||
# 使用生成器生成验证码,将每次生成的随机字符+到之前产生的字符后面
|
||||
verification_code += next(gen)
|
||||
|
||||
return verification_code
|
||||
|
||||
|
||||
# 生成一个6位验证码
|
||||
print(generate_verification_code(6))
|
||||
```
|
||||
|
||||
|
||||
|
||||
><span style="color: red; background: yellow; padding: 2px 5px; font-size: 22px;">作业7.1提交的内容</span>
|
||||
>
|
||||
>- 理解程序的运行逻辑
|
||||
>- 程序运行成功的截图,单独发送给组长
|
Reference in New Issue
Block a user