【python】13位隨機序號產生工具 源碼分析

來源:互聯網
上載者:User

標籤:python   序號   產生器   源碼   random   字串   

By Dolphin,BeiJing,20150712

0X00  背景

    最近在學習python 這門語言,剛學完for迴圈,對於很多語句文法都不太熟悉。就在今天,看到有某個網站的活動,需要輸入一個13位的序號來判斷你是否中獎,但是這個13位序號是需要購買他們家的產品才能獲得,得耗費一定的金錢,於是我就在想,是不是能自己寫一個序號產生器來碰碰運氣,所以決定運用剛學的python的初級知識進行編寫。

0X01  知識點準備

    這個工具主要的功能是產生隨機字母做序號,python中的random()函數的作用就是隨機產生一個字串或數字。下面對所用到的函數進行簡單介紹:

    random.randint(a,b)

    隨機產生一個範圍在 a <=  N  <= b 之內的隨機數N,如:

import randoma = random.randint(2,5)print(a)

    random.randrange(a)

    該函數與上一個功能一樣,不同的是只需要一個參數,隨機產生的數字範圍 0 <= N <= a ,從零開始,到a-1時結束。

import randoma = random.randrange(5)print(a)

    random.choice(seq)

    此函數功能是從字串序列seq中隨機播放一個字串,如果序列為空白,則返回IndexError.

seq = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘a   = random.choice(seq)print(a)

0X02  功能需求

    通過分析已知的13位序號,發現有規律可循,序號基本上可以分為兩種:

    1、序號分為三部分,第一部分為前4位為隨機字母,第5位和第6位是隨機數字,後7位為隨機字母;

    2、這種序號基本無規則,只有一條規則,那就是13位隨機序號中,只能出現2位為隨機數字,其餘的都隨機產生字母;

0X03  源碼

    由於剛學python沒多久,故只對第一種情況進行編碼,第二種情況有興趣的童鞋可以把編碼完善或者簡化一下,如以下代碼有錯或者可以簡化的地方,歡迎指出!

#  Random generate some character string #  By Dolphin , 20150712import random# Generate random string Part Onestra = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘   #定義隨機產生字串的範圍strb = ‘‘i = 4;while i > 0 :                         #產生第一部分前4位隨機字串的迴圈strb += random.choice(stra)i -= 1print("Part One:",strb)#Generate random string Part Twostra2 = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘strb2 = ‘‘i2 = 7while i2 > 0 :                        #產生第二部分後7位隨機字串的迴圈strb2 += random.choice(stra2)i2 -= 1print("Part Two:",strb2)# Generate random number              num1 = str(random.randrange(9))       #產生中間部分的隨機數字num2 = str(random.randrange(9))s = strb + num1 + num2 + strb2        #將隨機產生的三部分字串進行組合print(s)

0X04 擴充應用

    通過以上執行個體進行練習之後,可以對此進行擴充,比如:將隨機產生的字串儲存在TXT文本中;或者產生一個13位字串的"字典";還可以寫得更複雜一些,直接寫個字典產生工具…… 

    如果你僅僅只是想產生一串13位的隨機字串,沒有以上我說的那兩個限定條件的話,還有更簡潔的代碼可以實現,如下:


from random import Random def random_str(randomlength = 8 ):      str = ‘‘      chars = ‘AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789‘      length = len (chars) - 1      random = Random()      for i in range (randomlength):          str + = chars[random.randint( 0 , length)]      return str


-------------------------------------------------------------------------------------

參考資料:

1、《The Python Standard Library》, ,

   https://docs.python.org/3/library/random.html#module-random 

2、《Pyhton中的random模組》,Capricorn.python,

   http://www.cnblogs.com/yd1227/archive/2011/03/18/1988015.html

3、《使用python產生固定長度的隨機字串》,huwei,

   http://www.oschina.net/code/snippet_153443_4752


本文出自 “西伯利亞狼026” 部落格,請務必保留此出處http://1429223.blog.51cto.com/1419223/1673590

【python】13位隨機序號產生工具 源碼分析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.