用python用户注册和短信验证码逻辑实现案例
阅读原文时间:2023年08月11日阅读:3

一.写代码前分析(逻辑分析OK了才可以顺利成章的敲代码):
A、用户发送请求
1、注册账号(用户名不能重复)--按照需求进行判断
2、短信验证码(有效期5分钟)--对短信验证码进行保存

B、用户注册、短信验证用不同得函数封装实现

  d\_user={}        #存放用户名和密码的数据字典  

  verification={}  #存放短信验证码--手机号为键,验证码为值

二.涉及的知识点
1.函数调用

def f2():
print(123)
def f3():
f2()
print('……..')
f3()

运行截图:

2.print(random.randint(0,9)) #生成随机数

3.使用filter()过滤器校验用户是否已注册

# 校验用户是否已经注册

def f(o):

    if o==user:  # 重复

        return o # 返回相同的对象  

if list(filter(f,d\_user)): # 重复

    print('用户名已注册!!!')

三.代码板块

1.初版

d_user={} # 用户信息数据库

verification={} # 存放短信验证信息 手机号为键 验证码为值

def register(user,password,mobile):

# 校验用户是否已经注册

def f(o):

    if o==user:  # 重复

        return o # 返回相同的对象

if list(filter(f,d\_user)): # 重复

    print('用户名已注册!!!')

else:  
    # 可以注册,先生成6位长度的短信验证码

    sms\_num=\[\]

    for i in range(6):  # 循环6次

        sms\_num.append(str(random.randint(0,9)))

    print(sms\_num)

    s=''.join(sms\_num) # 字符串拼接

    # 添加---保存验证码信息  (手机号为键,短信验证码为值)  
     verification\[mobile\]=s

    print('验证码为:%s'%s)  # 告诉用户短信验证码

    sms\_code=input('请输入短信验证码:')  
    #  
   判断所输入的验证码是否真

    if verification\[mobile\]==sms\_code:

        # 注册成功    保存用户名、密码

         d\_user\[user\]=password

         print('注册成功!!!')

    else:  
         print('短信验证码输入错误重新输入!!!')

        **\# 若输入错误我们需要改短信验证码,程序又要回到再次验证,所以写一个验证码方法直接调用即可**  

while True:

user=input('请输入用户名:')  
password=input('请输入密码:')  
mobile=input('请输入手机号:')

register(user, password, mobile)

运行截图:

2.终版,增加验证码方法

d_user={} # 用户信息数据库

verification={} # 存放短信验证信息 手机号为键 验证码为值

def short_ver(user,password,mobile):

sms\_code=input('请输入短信验证码')

# 判断所输入的验证码是否真

if verification\[mobile\]==sms\_code:

    # 注册成功  --保存用户名、密码

    d\_user\[user\]=password

    print('注册成功!!!')

else:  
    print('短信验证码输入错误重新输入!!!')

    # 我们直接改短信验证码  
    short\_ver(user,password,mobile)  # 再次调用

def register(user,password,mobile):

# 校验用户是否已经注册

def f(o):

    if o==user:  # 重复

        return o # 返回相同的对象

if list(filter(f,d\_user)): # 重复

    print('用户名已注册!!!')

else:  
    # 可以注册,先生成6位长度的短信验证码

    sms\_num=\[\]

    for i in range(6):  # 循环6次

        sms\_num.append(str(random.randint(0,9)))

    print(sms\_num)

    s=''.join(sms\_num) # 字符串拼接

    # 添加---保存验证码信息  
    verification\[mobile\]=s

    print('验证码为:%s'%s)  # 告诉用户短信验证码

    short\_ver(user,password,mobile)  

while True:

user=input('请输入用户名:')  
password=input('请输入密码:')  
mobile=input('请输入手机号:')

register(user, password, mobile)

运行截图: