人工智能(python)开发 —— random模块(随机模块)



一、随机模块 random

        random模块是用于模拟或生成随机输出的模块。

详见官方文档(英文):https://docs.python.org/3/library/random.html

二、random模块的用法

import random as R

函数名 描述
R.random() 返回一个[0, 1) 之间的随机实数
R.uniform(a,b) 返回[a,b) 区间内的随机实数
R.randrange([start,] stop[, step]) 返回range(start,stop,step)中的随机数
R.choice(seq) 从序列中返回随意元素
R.shuffle(seq[, random]) 随机指定序列的顺序(乱序序列)
R.sample(seq,n) 从序列中选择n个随机且不重复的元素
R.getrandbits(nbit) 以长整型的形式返回用nbit位来表示的随机数
R.seed(a=None) 用给定的数a设置随机种子,不给参数a则用当前时间设置随机种子

三、示例

第一题

        假设可以作为密码的字符有:A-Z、a-z、0-9、下划线;
写一个程序,随机生成六位密码

import random
a = [x for x in range(0,10)]
b = [chr(x) for x in range(ord('a'),ord('z')+1)]
c = [chr(x) for x in range(ord('A'),ord('Z')+1)]
L = a+b+c
passwd = ''.join(random.sample(L,6))
print(passwd)

第二题

模拟斗地主发牌,扑克共53张:
花色:
        黑桃(‘\u2660’)梅花(‘\u2663’)
        方块(‘\u2665’)红桃(‘\u2666’)
数值:
        A2-10JQK
        大小王
三个人,没人发17张牌,底牌三张;
输入回车,打印第1个人的17张牌
输入回车,打印第2个人的17张牌
输入回车,打印第3个人的17张牌
再输入回车,打印出三张底牌

L = ['A'] + [str(x) for x in range(2, 11)] + list("JQK")
# print(L)
kinds = ['\u2660', '\u2663', '\u2665','\u2666']
# print(kinds)

poke = ['大王', '小王']
for k in kinds:
    for n in L:
        poke.append(k + n)

print("新买的牌:", poke)
poke2 = list(poke)  # 复制一份

import random
random.shuffle(poke2)  # 洗牌

input()
print("第1个人的17张牌是:", poke2[:17])
input()
print("第2个人的17张牌是:", poke2[17:34])
input()
print("第3个人的17张牌是:", poke2[34:51])
input()
print("底牌是:", poke2[51:])

四、附录

        人工智能(python)—— 目录汇总


猜你喜欢

转载自blog.csdn.net/qq_27297393/article/details/80766365
今日推荐