python练习六十八:字符串练习

题目:一个商城在搞抽奖的活动,需要在搞活动的宣传单上印刷优惠卷的验证码,验证码规定20位,生成100个

先来个简单的,20位码中只取数字

import random
def num_1(num):
    leng = 0
    a = ''
    while leng < num:
        i = random.randint(0, 9)
        a += str(i)
        leng += 1
    return a

if __name__ == "__main__":
    list1 = []
    num = 20
    for i in range(100):
        list1.append(num_1(num))
    print(list1)

再来个数字字母都取得,用到random模块的两种方法,分别验证

一、random.randint

import random
import string

def random_count(count):
    chars = string.ascii_letters + string.digits
    z = ''
    for i in range(count):
        j = random.randint(0, len(list(chars))-1) #获取随机数在0和char长度范围内,然后将char中j索引的字符添加到z中,执行该操作20次
        z += list(chars)[j]
    return z

if __name__ == "__main__":
    for i in range(100):
        print(random_count(20))

二、random.choice

import random
import string

chars = string.ascii_letters + string.digits
def generate_code(count,length):
    z = ""
    for x in range(count):
        j = random.choice(chars) #获取chars中随机的字符,并将其追加到z,循环count次后得到结果
        z += j
    return z

if __name__ == "__main__":
    for i in range(100):
        print(generate_code(20,10))

后面做个汇总的,这个是生成后有连接符号的

import random
import string

#string.ascii_letters 26个大小写,string.digits 0-9数字
chars = string.ascii_letters + string.digits  #获得激活码中的字母和数字组合
print(chars)

def getRandom(): # 获得4位数激活码
    return "".join(random.sample(chars, 4))

def concatenate(group):# 获得4列4位数激活码 以"-"串联
    return "-".join([getRandom() for i in range(group)])

def generate(n):# 生成n组4列的16位激活码
    return [concatenate(4) for i in range(n)]


if __name__ == '__main__':
    print(getRandom())
    print(concatenate(4))
    print(generate(5))

猜你喜欢

转载自www.cnblogs.com/pinpin/p/10412112.html
今日推荐