Python實(shí)現(xiàn)簡單生成驗(yàn)證碼功能【基于random模塊】
本文實(shí)例講述了Python實(shí)現(xiàn)簡單生成驗(yàn)證碼功能。分享給大家供大家參考,具體如下:
驗(yàn)證碼一般用來驗(yàn)證登陸、交易等行為,減少對端為機(jī)器操作的概率,python中可以使用random模塊,char()內(nèi)置函數(shù)來實(shí)現(xiàn)一個(gè)簡單的驗(yàn)證碼功能。
import random
def veri_code():
li = []
for i in range(6): #循環(huán)6次,生成6個(gè)字符
r = random.randrange(0, 5) #隨機(jī)生成0-4之間的數(shù)字
if r == 1 or r == 4: #如果隨機(jī)數(shù)字是1或者4時(shí),生成0-9的數(shù)字
num = random.randrange(0, 9)
li.append(str(num))
else: #如果不是1或者4時(shí),生成65-90之間的數(shù)字
temp = random.randrange(65, 91)
char = chr(temp) #將數(shù)字轉(zhuǎn)化為ascii列表中對應(yīng)的字母
li.append(char)
r_code = ''.join(li) #6個(gè)字符拼接為字符串
# print('\033[31;1m%s\033[0m' % r_code)
return r_code #返回字符串
#測試
print(veri_code())#運(yùn)行結(jié)果:BKT8RL
基本原理是使用random,隨機(jī)生成數(shù)字:
1.要幾個(gè)字符就循環(huán)幾次
2.隨機(jī)生成一個(gè)數(shù)字,定義如果這個(gè)數(shù)字為其中某值X時(shí),再隨機(jī)一個(gè)0-9中間的數(shù)字。為什么0-9呢,因?yàn)?0的話就占了兩個(gè)字符了........
3.循環(huán)時(shí),隨機(jī)數(shù)字如果不為X時(shí),生成一個(gè)65-90之間的數(shù)字,然后使用char()函數(shù)轉(zhuǎn)化為ascii列表中對應(yīng)的字母,當(dāng)然就是大寫的A-Z啦
4.將生成的字符加入列表,最后將列表拼接成字符串就O了
PS:這里再提供幾款相關(guān)工具供大家參考使用:
在線隨機(jī)生成個(gè)人信息數(shù)據(jù)工具:
http://tools.jb51.net/aideddesign/rnd_userinfo
在線隨機(jī)字符/隨機(jī)密碼生成工具:
http://tools.jb51.net/aideddesign/rnd_password
在線隨機(jī)數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
樹莓派上利用python+opencv+dlib實(shí)現(xiàn)嘴唇檢測的實(shí)現(xiàn)
本文主要介紹了樹莓派上利用python+opencv+dlib實(shí)現(xiàn)嘴唇檢測的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
利用python中pymysql操作MySQL數(shù)據(jù)庫的新手指南
PyMySQL是在Python3.x版本中用于連接MySQL服務(wù)器的一個(gè)庫,Python2中是使用mysqldb,這篇文章主要給大家介紹了關(guān)于利用python中pymysql操作MySQL數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下2021-09-09
Python實(shí)現(xiàn)提取指定名稱的文件并批量復(fù)制到其他文件夾
本文介紹基于Python語言,讀取一個(gè)文件夾,并將其中每一個(gè)子文件夾內(nèi)符合名稱要求的文件加以篩選,并將篩選得到的文件復(fù)制到另一個(gè)目標(biāo)文件夾中的方法,需要的朋友可以參考下2023-10-10
解決springboot yml配置 logging.level 報(bào)錯(cuò)問題
今天小編就為大家分享一篇解決springboot yml配置 logging.level 報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
pandas實(shí)戰(zhàn):分析三國志人物示例實(shí)現(xiàn)
這篇文章主要介紹了pandas實(shí)戰(zhàn):分析三國志人物示例實(shí)現(xiàn),本文章內(nèi)容詳細(xì),具有很好的參考價(jià)值,希望對大家有所幫助,需要的朋友可以參考下2023-01-01
PyQt5 PySide2 觸摸測試功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了PyQt5 PySide2 觸摸測試功能的實(shí)現(xiàn),本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
PyTorch中torch.manual_seed()的用法實(shí)例詳解
在Pytorch中可以通過相關(guān)隨機(jī)數(shù)來生成張量,并且可以指定生成隨機(jī)數(shù)的分布函數(shù)等,下面這篇文章主要給大家介紹了關(guān)于PyTorch中torch.manual_seed()用法的相關(guān)資料,需要的朋友可以參考下2022-06-06
python實(shí)現(xiàn)Android與windows局域網(wǎng)文件夾同步
這篇文章主要給大家詳細(xì)介紹了python實(shí)現(xiàn)Android與windows局域網(wǎng)文件夾同步,文中有詳細(xì)的代碼示例和圖文介紹,具有一定的參考價(jià)值,需要的朋友可以參考下2023-09-09

