首页 > 其他分享 >random实现一个验证码,可以是4位或者6位,可以是纯数字、数字+字母

random实现一个验证码,可以是4位或者6位,可以是纯数字、数字+字母

时间:2024-07-03 14:53:42浏览次数:10  
标签:code 数字 characters random 验证码 str print type

点击查看代码

import random
import string
def generate_str_num_code(length):
characters=string.digits+string.ascii_letters #type--><class 'str'>
code=""
for i in range(length):
code=code+ random.choice(characters)
#code = code + str(random.sample(characters,1))
#print(type(str(random.sample(characters,1)))) #class 'str'> ['2']
# type--><class 'str'> random.sample(characters,1)的结果是一个list,即使用str强制转换,看起来也还有列表的特征['w']['E']['o']['8'],而random.choice(characters)是单个的字符
return code
ret = generate_str_num_code(4) #type--><class 'str'>
print(ret)
print(f"the code you generated is: {ret}")

以下是辅助理解代码用:

import random
characters='0123456789'
print(random.choice(characters)) # 9
print(type(random.choice(characters))) # <class 'str'>

print(random.sample(characters,1)) # ['9']
print(type(random.sample(characters,1))) # <class 'list'>

list=[['a'],['b'],'c']
list1 = [1,2,3]
print(str(list)) # [['a'], ['b'], 'c']
print(str(list1)) # [1, 2, 3]

在Python中,使用str()函数将一个列表转换为字符串时,结果确实看起来仍然像是列表。这是因为str()函数在处理列表时,会生成一个包含列表元素的字符串表示形式,该字符串会包含列表的方括号 [ ] 和逗号 , 分隔的元素。

标签:code,数字,characters,random,验证码,str,print,type
From: https://www.cnblogs.com/evol-chunxi/p/18281626

相关文章

  • 图扑智慧农业——生态鱼塘数字孪生监控
    智慧农业园作为新型农业经营模式,正在以其高效、环保、可持续的特点受到广泛关注。智慧鱼塘作为智慧农业中一项关键技术,结合物联网、人工智能、云计算等技术,实现对新型养殖模式的实时监控、优化与管理。效果展示图扑软件应用自研HTforWeb产品,打造轻量化智慧生态鱼塘可视化解......
  • WPF进度条中间写百分比数字
    我发现很多同学把思维固话了,通常我们需要实现的进度条是我在网上看到好多例子,但是都没有我的简单,他们不是重写ProcessBar就是使用模板,可以将TextBlock提取出来啊,灵活一点单独绑定然后一句代码Panel.ZIndex="1"就搞定了<StackPanel><ButtonContent="执行耗时......
  • 鸿蒙手机号&&验证码登录, 包含倒计时&&号码格式验证码格式校验, 还有 使用 Hyperlink
    1,先看看整体效果                          2,看格式校验效果                            3,代码直接CV  importpromptActionfrom'@ohos.promptA......
  • 全球首创全息数字人智能手表(全息手表)
    小粒W1:全息数字人手表,将健康管理与时尚融为一体,全天候守护您的健康,让数字人管家智能关怀随时可见。**小粒W1&小粒GS1——智慧的随身延伸**小粒W1全息数字人手表,搭配GS1眼镜伴侣,将智能管家的魔力延伸至您的手腕与眼前。无论是外出散步或是商务洽谈,只需轻轻一瞥,全息数......
  • 题解 - 数字计数
    题目思路简析正解是数位dp,但是我不太会,所以我打分块。考虑从\(10^6\)到\(2\times10^6\)和从\(3\times10^6\)到\(4\times10^6\),其中真正的区别只有观察到数据范围是\(10^{12}\),分为一些块,每块长\(10^6\)会比较均衡,所以共有\(10^6\)个块。最差情况是\(n=10^6+1......
  • 题解 - 数字计数
    题目思路简析正解是数位dp,但是我不太会,所以我打分块。考虑从\(10^6\)到\(2\times10^6\)和从\(3\times10^6\)到\(4\times10^6\),其中真正的区别只有观察到数据范围是\(10^{12}\),分为一些块,每块长\(10^6\)会比较均衡,所以共有\(10^6\)个块。最差情况是\(n=10^6+1......
  • 维克日记 v0.4.2:开发者友好的数字化笔记工具
     维克日记,专为技术开发者和笔记爱好者设计的数字化笔记工具,以其强大的功能和灵活的配置赢得了用户的好评。软件采用Markdown语法,提供实时预览功能,让您的笔记编辑更加高效和直观。维克日记的用户界面简洁而功能齐全,无需复杂的设置,即可开始记录您的思路和创意。它支持表格可视化......
  • Python 作业题1 (猜数字)
    题目你要根据线索猜出一个三位数。游戏会根据你的猜测给出以下提示之一:如果你猜对一位数字但数字位置不对,则会提示“Pico”;如果你同时猜对了一位数字及其位置,则会提示“Fermi”;如果你猜测的数字及其位置都不对,则会提示“Bagels”。你有10次猜数字机会花十分钟,来实现一下吧......
  • 神经网络在机器学习中的应用:手写数字识别
            机器学习是人工智能的一个分支,它使计算机能够从数据中学习并做出决策或预测。神经网络作为机器学习的核心算法之一,因其强大的非线性拟合能力而广泛应用于各种领域,包括图像识别、自然语言处理和游戏等。本文将介绍如何使用神经网络对MNIST数据集中的手写数字进......
  • 解码未来城市:探秘数字孪生的奥秘
    在科技日新月异的今天,"数字孪生"(DigitalTwin)这一概念如同一颗璀璨的新星,照亮了智慧城市、智能制造等多个领域的前行之路。本文将深入浅出地解析数字孪生的定义、技术原理、应用场景及未来发展,带您一窥这股引领时代潮流的力量。数字孪生的定义数字孪生,简而言之,是在虚拟世界中......