Notas de Estudio (31): Red de Python Programación y programación concurrente - Temporizador

Aprender de inmediato: https://edu.csdn.net/course/play/24458/296448?utm_source=blogtoedu

Temporizador: threading.Timer

1. Concepto: Temporizador es lograr demasiado tiempo para ejecutar lo

 

2. función de correlación

1) Temporizador (self, intervalo, la función, args = ())

intervalo: cronometrado

función: un evento para ser ejecutado, por lo general un nombre de función, no hay paréntesis

args: una

 

2) t = Temporizador (...)

En realidad, es un hilo, utilice:

t.Start () para iniciar,

t.cancel () End

 

3) aleatorio

random.randint (0,9): la generación de un número entero aleatorio arbitraria de 0 a 9 (que corresponde a 65-90 del código es el caso de las letras ascill)

random.choice ([s1, s2, ....]): opcionalmente de una lista

 

3. Código

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

#导入模块
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()

 

Publicado 49 artículos originales · ganado elogios 11 · vistas 568

Supongo que te gusta

Origin blog.csdn.net/qq_45769063/article/details/105098077
Recomendado
Clasificación