Python 随机数模块 random

2018/10/29 Python
  • random.randint(a,b)

返回 a , b 之间的整数。

import random
random.randint(1,10)
  • random.choice(seq)

choice(seq) 从非空序列的元素中随机挑选一个元素,比如random.choice(range(10)) 从 0 到 9 中随机挑选一个整数。

import random
random.choice(range(1,10,2))
  • random.randrange([start],stop[,setp])

从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省为 1,与choice(range(1,10,2)) 功能相同。

import random
random.randrange(1,10,2)
  • random.shuffle(list)

直接将列表内的元素打乱

-w554

  • random.sample(population, k)

从样本空间或总体(序列或者集合类型)中随机取出 K 个不同的元素,返回一个新的列表。

-w546

练习:使用 Python 实现随机生成 200 无重复激活码(或者优惠券),字符串长度大于 5 以上。

# 使用 Python 实现随机生成 200 无重复激活码(或者优惠券),字符串长度大于 5 以上
import random

letters = []
random_numbers = []

# 生成随机范围
for i in range(ord('a'), ord('z')):
    letters.append(chr(i))
letters.extend(range(10))

while len(random_numbers) < 200:
    letter = ''
    for s in random.sample(letters, 6):
        letter += str(s)

    random_numbers.append(letter.upper())
    # 去重
    for rnd in random_numbers:
        while random_numbers.count(rnd) >= 2:
            random_numbers.remove(rnd)
print(random_numbers)

Search

    Table of Contents