python技巧

random模块使用

2018-08-14  本文已影响0人  陆_志东

random模块使用示例

import random
import random
import string

print(random.random())   # 返回一个随机浮点数
>>0.7434616843871897
print(random.uniform(1,2))  # 返回一个1-2之间的随机浮点数
>>1.5945262422214976
print(random.randrange(10))  # 返回0-10之间的随机整数
>>3
print(random.randrange(0,10,2))  # 返回0-10之间的随机偶数 , range传入的是一个范围
>>4
print(random.choice(["1","2","3","5"]))  # 从序列中随机选取一个值
>>"5"
# 从序列中随机的抽取出3个元素,并组成新序列返回.不改变原有数列
print(random.sample(["1","2","3","4","5","6","7","8"],k=3))
>>['8', '5', '4']
print(random.randint(10))  # 返回0-10之间的随机整数, int 传入的是一个整数
>>5
list1 = ["1","2","3"]
random.shuffle(list1)
print(list1)   # 对原数列进行洗牌,不改变数据,只改变排序
>>["2","1","3"]

# 随机生成一个包含大写字母A-Z和数字0-9的随机4位验证码程序
checkcode = ''
for i in range(4):
    current = random.randrange(0,4)
    if current != i:
        temp = chr(random.randint(65,90))
    else:
        temp = random.randint(0,9)
    checkcode += str(temp)
print(checkcode)
>>4A11


# 生成指定长度的随机字母数字序列(至少有一个字母|至少有一个数字)

def gen_random_string(length):
    # 数字的个数随机产生
    num_of_numeric = random.randint(1,length-1)
    # 剩下的都是字母
    num_of_letter = length - num_of_numeric
    # 随机生成数字
    numerics = [random.choice(string.digits) for i in range(num_of_numeric)]
    # 随机生成字母
    letters = [random.choice(string.ascii_letters) for i in range(num_of_letter)]
    # 结合两者
    all_chars = numerics + letters
    # 洗牌
    random.shuffle(all_chars)
    # 生成最终字符串
    result = ''.join([i for i in all_chars])
    return result

print(gen_random_string(64))
>>nE1f9uWuVbj6WIIlsDkbYkcj7INqWSfYIKMQgcNlisVKy1kRpO5u3Qjrvrq5TGoS
上一篇 下一篇

猜你喜欢

热点阅读