学习笔记(31):Python网络编程&并发编程-定时器

立即学习:https://edu.csdn.net/course/play/24458/296448?utm_source=blogtoedu

定时器:threading.Timer

1.概念:定时器就是实现过多久去执行什么事情

 

2.相关函数

1)Timer(self,interval,function,args=())

interval:定时的时间

function:需要执行的事件,一般是函数名,不需要带括号

args:参数

 

2)t = Timer(...)

实际上就是一个线程,使用:

t.start()开始,

t.cancel()结束

 

3)random

random.randint(0,9):生成从0到9的任意随机整数(65-90的ascill码对应的是字母的大小写)

random.choice([s1,s2,....]):从列表中任选一个

 

3.代码

'''
这里利用一个生成验证码的例子来说明定时器的功能与使用
'''

#导入模块
from threading import Timer
import random
import time

#创建生成验证码的类
class code():
    #一般验证码是由数字和字母组成,共4位
    #创建生成验证码的函数
    def make_code(self,n=4):
        #n是验证码的位数
        res=''
        for i in range(n):
                #生成字符串型的整数,字符串才能拼接,randint()生成一定范围内的任意整数
                s1 = str(random.randint(0,9))
                #生成字母,大小写字母的asill码位于65-90之间
                s2 = chr(random.randint(65,90))
                #在s1\s2中任选组成四位验证码,random.chioce()
                res+=random.choice([s1,s2]).strip()#strip()将空格去掉
        return res

    #创建定时更新验证码的函数
    def updata_code(self,interval=10):
        #获取随机生成的验证码
        self.new_code = self.make_code()#将验证码返回到类作为类中的全局变量,实现验证码的变动
        print(self.new_code)
        self.t = Timer(interval,self.updata_code)#将t设置为类中的全局变量
        self.t.start()

    #创建输入验证码的函数
    def input_code(self):
        while True:
            self.updata_code()
            res = input('请输入正确的验证码>>>:')
            if res.upper() == self.new_code:
                print('验证码正确')
                self.t.cancel()#停止定时器
                break
            else:
                print("验证码不正确,10s后重新输入")






if __name__ == '__main__':
    obj = code()
    obj.input_code()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有情怀的机械男

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值