Python實(shí)現(xiàn)一個(gè)簡單的驗(yàn)證碼程序
老師講完random函數(shù),自己寫的,雖然和老師示例的不那么美觀,智能,但是也自己想出來的,所以記錄一下,代碼就需要自己不斷的自己練習(xí),實(shí)戰(zhàn),才能提高??!不然就像我們這些大部分靠自學(xué)的人,何時(shí)能學(xué)會。還有就是,這次聽老師的,把自己的代碼添加注釋,所以這次把很簡單的代碼都寫上了注釋,而且很大白話,不管有沒有接觸過python的,我相信仔細(xì)看了,肯定能看懂。如果看完,再自己嘗試著默寫出來,那就是更好到了,好了進(jìn)入正題:
自己寫的:
__Author__ = "Zhang Peng" import random #導(dǎo)入random模塊 code='abcdefdhigkmlnopqrstuvwxyzABCDEFDHIGKMLNOPQRSTUVWXYZ0123456789' #定義一個(gè)驗(yàn)證碼的庫,賦給變量code checkcode='' #定義一個(gè)空字符串,賦給checkcode count=0 #需要對循環(huán)進(jìn)行計(jì)數(shù),初始值設(shè)為0 while count<6: #添加一個(gè)while循環(huán),當(dāng)count小于6的時(shí)候就會一直循環(huán) i=random.choice(code) #choice是random里面的一個(gè)方法,就是把code里面的值隨機(jī)取出一個(gè)來賦給i checkcode+=i #把checkcode+i重新賦值給checkcode,每循環(huán)一次checkcode長度都會增加一位 count+=1 #把count+1賦值給count,每循環(huán)一次,count都會加1 else: #else是while循環(huán)的一個(gè)用法,就是當(dāng)count不小于6的時(shí)候做什么事 pass #我這里寫的是,當(dāng)count不小于6就跳過這個(gè)循環(huán) print(checkcode) #最后打印一下checkcode,這里的checkcode每運(yùn)行一次都會是不同的值
結(jié)果:
M9Y7sE
自己的代碼,看著最別扭的就是,自己定義的那一堆code,顯得很笨重,下面看看老師給的示例(這個(gè)示例,是經(jīng)過我簡單加工后的,老師演示的里面只可以打印出大寫字母和數(shù)字的6位驗(yàn)證碼):
__Author__ = "Zhang Peng"
import random
#導(dǎo)入random模塊
checkcode=''
#定義一個(gè)空字符串,賦給checkcode
for i in range(6):
#這里一個(gè)for循環(huán),是讓i在range(6)中循環(huán),每次循環(huán)取出
# 來的值,賦給i;這里range(6)=(0,1,2,3,4,5)
current=random.randrange(0,6)
#randrange是random中的一個(gè)方法,隨機(jī)從range(0,6)中取一個(gè)數(shù)出來,賦值給current
if current<2:
#這里用了一個(gè)if語句,如果current小于2,做什么事
checkcode+=chr(random.randint(65,90))
#如果current等于i,randint也是random中的一個(gè)方法,chr是python中的內(nèi)置函數(shù)
#意思是把數(shù)字轉(zhuǎn)換成ascll碼表對應(yīng)的字符,65到90正好對應(yīng)ascll碼中的大寫A到大寫Z
#這句函數(shù)意思是chr取出一個(gè)字母加上checkcode,重新賦值給checkcode
elif current >= 2 and current < 4 :
#elif,如果current大于等于2,且小于4做什么。
checkcode += chr(random.randint(97, 122))
# 其他類似于上一條,其中97到122正好對應(yīng)ascll碼中的小寫a到小寫z
else:
#if的用法,如果current不符合上面條件,做什么事
checkcode+=str(random.randint(0,9))
#str也是python的內(nèi)置函數(shù),就是把什么轉(zhuǎn)換為字符串,這里是把0到9的任意一個(gè)整數(shù)
#取出來,加上checkcode,重新賦值給checkcode
print(checkcode)
#最后打印一下checkcode
運(yùn)行結(jié)果:
vgW2u3
自己加過過后,感覺添加了一個(gè)elif,顯的還是有些笨重,希望以后可以研究出更清晰的代碼。
總結(jié)
以上就是本文關(guān)于Python實(shí)現(xiàn)一個(gè)簡單的驗(yàn)證碼程序的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Python編程django實(shí)現(xiàn)同一個(gè)ip十分鐘內(nèi)只能注冊一次、簡單了解Python中的幾種函數(shù)、Python算法輸出1-9數(shù)組形成的結(jié)果為100的所有運(yùn)算式等,歡迎大家留言提出寶貴意見,共同交流進(jìn)步。感謝朋友們對本站的支持!
相關(guān)文章
Django自定義插件實(shí)現(xiàn)網(wǎng)站登錄驗(yàn)證碼功能
這篇文章主要為大家詳細(xì)介紹了Django自定義插件實(shí)現(xiàn)網(wǎng)站登錄驗(yàn)證碼功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
python用于url解碼和中文解析的小腳本(python url decoder)
這篇文章主要介紹了python用于url解碼和中文解析的代碼,需要的朋友可以參考下2013-08-08
Python高級技巧之利用psutil和subprocess實(shí)現(xiàn)程序監(jiān)控與管理
本文介紹了如何使用Python的psutil和subprocess模塊監(jiān)控程序運(yùn)行狀態(tài),并提供了一個(gè)案例腳本,用于監(jiān)控目標(biāo)程序并在停止時(shí)自動重啟,詳細(xì)介紹了subprocess模塊的基本用法和psutil模塊的系統(tǒng)信息獲取、進(jìn)程管理及資源監(jiān)控功能,需要的朋友可以參考下2024-09-09
Python標(biāo)準(zhǔn)庫之多進(jìn)程(multiprocessing包)介紹
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫之多進(jìn)程(multiprocessing包)介紹,本文講解了進(jìn)程池、共享資源、共享內(nèi)存、Manager等內(nèi)容,需要的朋友可以參考下2014-11-11
Ubuntu22.04安裝PyTorch1.12.1 GPU版本全過程
這篇文章主要介紹了Ubuntu22.04安裝PyTorch1.12.1 GPU版本全過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
python使用Pandas庫提升項(xiàng)目的運(yùn)行速度過程詳解
這篇文章主要介紹了python使用Pandas庫提升項(xiàng)目的運(yùn)行速度過程詳解,這是一篇關(guān)于“如何充分利用Pandas內(nèi)置的強(qiáng)大且易于上手的特性”的指引。此外,你將學(xué)習(xí)到一些實(shí)用的節(jié)省時(shí)間的技巧,需要的朋友可以參考下2019-07-07
Python的SimpleHTTPServer模塊用處及使用方法簡介
這篇文章主要介紹了Python的SimpleHTTPServer模塊用處及使用方法簡介,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01

