每日一题 【每日一题】制作随机验证码 -Python-20210920

Jack · 2021年09月20日 · 最后由 lework 回复于 2022年01月07日 · 25 次阅读
本帖已被设为精华帖!

制作随机验证码,不区分大小写。要求用户输入的值和显示的验证码一致时,程序退出;不一致时,刷新验证码后继续输入,直到用户输入正确为止;(也可限定输入错误次数)

Jack 将本帖设为了精华贴 09月20日 22:29

参考代码:

def check_code():
    import random
    checkcode = ''
    for i in range(4):
        current = random.randrange(0, 4)
        if current != i:
            temp = chr(random.randint(65, 90))
        else:
            temp = random.randint(0, 9)
        checkcode += str(temp)
    return checkcode

while True:
    code = check_code()
    print('验证码:'code)
    v = input('>>>')
    if v.lower() == code.lower():
        print('验证码正确')
        break
    else:
        print('验证码错误重新输入!')
package main

import (
    "fmt"
    "math/rand"
    "os"
    "strings"
)

func CheckCode() string {
    var defaultLetters = []rune("abcdefghijklmnopqrstuvwxyz0123456789")

    b := make([]rune, 4)
    for i := range b {
        b[i] = defaultLetters[rand.Intn(len(defaultLetters))]
    }

    return string(b)
}

func main() {
    /*
    制作随机验证码,不区分大小写。
    要求用户输入的值和显示的验证码一致时,程序退出;
    不一致时,刷新验证码后继续输入,直到用户输入正确为止;(也可限定输入错误次数)
    */

    for {
        code := CheckCode()
        var inputCode string
        fmt.Printf("验证码: %s\n", code)
        fmt.Printf(">>> ")
        fmt.Scanln(&inputCode)
        if strings.ToLower(inputCode) == strings.ToLower(code) {
            fmt.Println("验证码正确")
            os.Exit(0)
        } else {
            fmt.Println("验证码错误重新输入!")
        }
    }
}
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册