最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python生成隨機驗證碼的兩種方法

 更新時間:2015年12月22日 09:56:50   投稿:mrr  
使用python生成隨機驗證碼的方法有很多種,今天小編給大家分享兩種方法,大家可以靈活運用這兩種方法,設計出適合自己的驗證碼方法

使用python生成隨機驗證碼的方法有很多種,今天小編給大家分享兩種方法,大家可以靈活運用這兩種方法,設計出適合自己的驗證碼方法。

方法一:

利用range方法,對于range方法不清楚的同學,請參考文章《python開發(fā)的range()函數(shù)》

# -*- coding: utf-8 -*-
import random
def generate_verification_code(len=6):
 ''' 隨機生成6位的驗證碼 '''
 # 注意: 這里我們生成的是0-9A-Za-z的列表,當然你也可以指定這個list,這里很靈活
 # 比如: code_list = ['P','y','t','h','o','n','T','a','b'] # PythonTab的字母
 code_list = [] 
 for i in range(10): # 0-9數(shù)字
  code_list.append(str(i))
 for i in range(65, 91): # 對應從“A”到“Z”的ASCII碼
  code_list.append(chr(i))
 for i in range(97, 123): #對應從“a”到“z”的ASCII碼
  code_list.append(chr(i))
 myslice = random.sample(code_list, len) # 從list中隨機獲取6個元素,作為一個片斷返回
 verification_code = ''.join(myslice) # list to string
 return verification_code

方法二:

利用randint方法

# -*- coding: utf-8 -*-
import random
def generate_verification_code_v2():
 ''' 隨機生成6位的驗證碼 '''
 code_list = []
 for i in range(2):
  random_num = random.randint(0, 9) # 隨機生成0-9的數(shù)字
  # 利用random.randint()函數(shù)生成一個隨機整數(shù)a,使得65<=a<=90
  # 對應從“A”到“Z”的ASCII碼
  a = random.randint(65, 90)
  b = random.randint(97, 122)
  random_uppercase_letter = chr(a)
  random_lowercase_letter = chr(b)
  code_list.append(str(random_num))
  code_list.append(random_uppercase_letter)
  code_list.append(random_lowercase_letter)
 verification_code = ''.join(code_list)
 return verification_code

測試:

code = generate_verification_code(6)
code2 = generate_verification_code_v2()
print code
print code2

輸出結果:

Glc5Tr
Hr6t7B

我個人更傾向于第一種方法,更加靈活,可以隨意設置驗證碼長度。

Python 隨機生成中文驗證碼

# -*- coding: utf-8 -*- 
import Image,ImageDraw,ImageFont 
import random 
import math, string 
class RandomChar(): 
 """用于隨機生成漢字""" 
 @staticmethod 
 def Unicode(): 
 val = random.randint(0x4E00, 0x9FBF) 
 return unichr(val) 
 @staticmethod 
 def GB2312(): 
 head = random.randint(0xB0, 0xCF) 
 body = random.randint(0xA, 0xF) 
 tail = random.randint(0, 0xF) 
 val = ( head << 8 ) | (body << 4) | tail 
 str = "%x" % val 
 return str.decode('hex').decode('gb2312') 
class ImageChar(): 
 def __init__(self, fontColor = (0, 0, 0), 
      size = (100, 40), 
      fontPath = 'wqy.ttc', 
      bgColor = (255, 255, 255), 
      fontSize = 20): 
 self.size = size 
 self.fontPath = fontPath 
 self.bgColor = bgColor 
 self.fontSize = fontSize 
 self.fontColor = fontColor 
 self.font = ImageFont.truetype(self.fontPath, self.fontSize) 
 self.image = Image.new('RGB', size, bgColor) 
 def rotate(self): 
 self.image.rotate(random.randint(0, 30), expand=0) 
 def drawText(self, pos, txt, fill): 
 draw = ImageDraw.Draw(self.image) 
 draw.text(pos, txt, font=self.font, fill=fill) 
 del draw 
 def randRGB(self): 
 return (random.randint(0, 255), 
   random.randint(0, 255), 
   random.randint(0, 255)) 
 def randPoint(self): 
 (width, height) = self.size 
 return (random.randint(0, width), random.randint(0, height)) 
 def randLine(self, num): 
 draw = ImageDraw.Draw(self.image) 
 for i in range(0, num): 
  draw.line([self.randPoint(), self.randPoint()], self.randRGB()) 
 del draw 
 def randChinese(self, num): 
 gap = 5 
 start = 0 
 for i in range(0, num): 
  char = RandomChar().GB2312() 
  x = start + self.fontSize * i + random.randint(0, gap) + gap * i 
  self.drawText((x, random.randint(-5, 5)), RandomChar().GB2312(), self.randRGB()) 
  self.rotate() 
 self.randLine(18) 
 def save(self, path): 
 self.image.save(path) 

相關文章

  • Python通過解析網頁實現(xiàn)看報程序的方法

    Python通過解析網頁實現(xiàn)看報程序的方法

    這篇文章主要介紹了Python通過解析網頁實現(xiàn)看報程序的方法,比較實用的功能,需要的朋友可以參考下
    2014-08-08
  • python的json包位置及用法總結

    python的json包位置及用法總結

    在本篇內容里小編給大家分享了關于python的json包用法詳解內容,需要的朋友們跟著學習下吧。
    2020-06-06
  • 如何解決Visdom全藍,不顯示內容問題

    如何解決Visdom全藍,不顯示內容問題

    這篇文章主要介紹了如何解決Visdom全藍,不顯示內容問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python基礎入門之seed()方法的使用

    Python基礎入門之seed()方法的使用

    這篇文章主要介紹了Python基礎入門之seed()方法的使用,是Python學習當中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • 深入理解python虛擬機之多繼承與?mro

    深入理解python虛擬機之多繼承與?mro

    在本篇文章當中將主要給大家介紹?python?當中的多繼承和mro,通過介紹在多繼承當中存在的問題就能夠理解在cpython當中引入c3算法的原因了,從而能夠幫助大家更好的了理解mro,需要的朋友可以參考下
    2023-05-05
  • python獲取url的返回信息方法

    python獲取url的返回信息方法

    今天小編就為大家分享一篇python獲取url的返回信息方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python?Prim算法通過遍歷墻實現(xiàn)迷宮的生成

    Python?Prim算法通過遍歷墻實現(xiàn)迷宮的生成

    之前,我們在另外一篇文章中使用Prim算法生成了一個完美迷宮,利用的是遍歷網格的方法,這一次,我們要教教大家用遍歷墻的方法生成,感興趣的可以收藏一下
    2023-01-01
  • Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示

    Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示

    這篇文章主要介紹了Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示,文章介紹了簡單的python爬蟲,并使用numpy進行了簡單的數(shù)據(jù)處理,最終使用?matplotlib?進行圖形繪制,實現(xiàn)了直觀的方式展示制造業(yè)和非制造業(yè)指數(shù)圖形,需要的朋友可以參考一下
    2022-05-05
  • python檢測某個變量是否有定義的方法

    python檢測某個變量是否有定義的方法

    這篇文章主要介紹了python檢測某個變量是否有定義的方法,實例分析了Python常用的變量判定技巧,需要的朋友可以參考下
    2015-05-05
  • Python性能優(yōu)化技巧

    Python性能優(yōu)化技巧

    Python的批評者聲稱Python性能低效、執(zhí)行緩慢,但實際上并非如此:嘗試以下6個小技巧,可以加快Pytho應用程序。
    2015-03-03

最新評論

齐河县| 三河市| 贵阳市| 卓资县| 湖北省| 惠州市| 稻城县| 巫山县| 基隆市| 海伦市| 会昌县| 叙永县| 新邵县| 逊克县| 卢氏县| 绥芬河市| 双流县| 安陆市| 泸溪县| 北海市| 广昌县| 长岭县| 白水县| 定远县| 松桃| 广水市| 南宫市| 射洪县| 虎林市| 筠连县| 黑山县| 丰都县| 庄河市| 田东县| 本溪| 固始县| 互助| 桐乡市| 荔浦县| 银川市| 衡水市|