Python练习2-随机数产生

第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?


这道题主要用来熟悉Python的随机函数,用到了random模块,大家可以参考Python中的random模块

  至于做题中遇到的坑,源文件在命名的时候用了random,导致使用random模块的函数时一直运行错误,Python中的模块其实就是一个含有.py文件的文件夹,所以大家最好不要将自己的文件名与Python的模块命名相同

以下是练习代码

#coding=utf-8
import random

#所有随机码长度均为8的整数倍

#random.randint 产生纯数字随机码
def randint_gen(len=16):
    if(len%8):
        return 0
    key=[]
    for i in range(len):
        if(i%4==0 and i):
            key.append('-')
        key.append(str(random.randint(0, 9)))
    out="".join(key)
    print out

#rnadom.randrange 产生纯数字随机码
def randrange_gen(len=16):
    if (len % 8):
        return 0
    key = []
    for i in range(len/2):
        if (i % 2 == 0 and i):
            key.append('-')
        key.append(str(random.randrange(10, 100,2)))
    out = "".join(key)
    print out

#random.shuffle 产生定长随机列表
def randshuffle_gen():
    list = [i for i in range(10)]
    for i in range(ord('a'), ord('z') + 1):
        list.append(chr(i))
    for i in range(ord('A'), ord('Z') + 1):
        list.append(chr(i))
    random.shuffle(list)
    return list

#random.choice 产生字母数字随机码
def randchoice_gen(len=16):
    if(len%8):
        return 0
    key=[]
    list=randshuffle_gen()
    for i in range(len):
        if(i%4==0 and i):
            key.append('-')
        key.append(str(random.choice(list)))
    out="".join(key)
    print out

if __name__=='__main__':
    randint_gen()
    randrange_gen()
    randchoice_gen()
    print randshuffle_gen()


posted @ 2017-05-17 18:07  Initial_Dream  阅读(769)  评论(0)    收藏  举报