一 概述

random模块就是取随机数的模块,主要用来做如下四件事情

  • 取随机小数 用的比较少,再并发编程中可能会用到
  • 取随机整数 用的比较多
  • 从一个列表重随机抽取值
  • 打乱一个列表的顺序

二: 随机取小数

  • random.random # 返回一个随机的小数
  • ramdom.uniform # 按照一个区间返回一个小数

2.1  random

import random      # 导入random模块
print(random.random()) # 调用random属性方法,返回值是一个小数
# 0.07819825943946712

2.2  uniform

import random  # 导入random模块
print(random.uniform(0,1)) # 随机生成一个0-1之间的小数
print(random.uniform(1,2)) # 随机生成一个1-2之间的小数

三 取随机整数

  • random.randint # 返回一个整数 闭区间取值
  • random.randrange # 返回一个整数 顾首不顾尾,也可以指定间隔
  • 例如彩票 抽奖等

3.1 randint

import random  # 导入random模块
print(random.randint(1,5)) # 随机打印一个1-5之前的整数,包括1和5

3.2 randrange

import random
print(random.randrange(1,2)) # 会一直取1 不包括2
print(random.randrange(1,100,2)) # 再1到100中取间隔为2的整数,不包括100

四: 从一个列表中随机取值

  • random.choice  # 从中选择一个元素返回,多次choice可能取到同一个值
  • random.sample # 从中选择多个元素返回 ,取到的多个值不可能重复

4.1 choice

import random
l = ['wangys',18,(1,2)]
print(random.choice(l))

4.2 sample

import random
l = ['wangys',18,(1,2)]
print(random.sample(l,2))

五: 打乱一个列表的顺序

打乱原列表的顺序,并不会产生一个新的列表

例如字牌,麻将游戏洗牌等

5.1 shuffle

import random  # 导入random模块
l = [1,2,3,4,5] # 定义一个l列表
random.shuffle(l) # 打乱顺序
print(l) # 查看已经打乱顺序的列表

六: 练习题

6.1  生成一个随机验证码

需求:

  • 一个随机验证码
  • 可以进行选择是纯数字还是字母数字组合
  • 可以选择位数
  • 默认6位
import random
def createIdentifyingCode(n = 6,alpha = True):
s = ''
for i in range(n):
res = str(random.randint(0,9))
if alpha:
alpha_upper = chr(random.randint(65,90))
alpha_lower = chr(random.randint(97,122))
res = random.choice([res,alpha_lower,alpha_upper])
s += res
return s
print(createIdentifyingCode())
print(createIdentifyingCode(alpha=False))

6.2 发红包

  • 拼手气红包
  • 用户输入金额和红包数量
  • 要注意每个人抢到红包的几率是一样的

Python内置模块之random的更多相关文章

  1. 8.python内置模块之random模块简介

    Python中的random模块用于生成随机数. 常用的7个函数: 1.random.random():返回一个[0,1)之间的随机浮点值(双精度) 2.random.uniform(a,b):返回[ ...

  2. python内置模块(4)

    这一部分是python内置模块系列的最后一部分,介绍了一些小巧有用的内置模块. 目录: 1.random 2.shelve 3.getpass 4.zipfile 5.tarfile 6.bisect ...

  3. Python学习笔记【第八篇】:Python内置模块

    什么时模块 Python中的模块其实就是XXX.py 文件 模块分类 Python内置模块(标准库) 自定义模块 第三方模块 使用方法 import 模块名 form 模块名 import 方法名 说 ...

  4. python内置模块[sys,os,os.path,stat]

    python内置模块[sys,os,os.path,stat] 内置模块是python自带功能,在使用内置模块时,需要遵循 先导入在 使用 一.sys 对象 描述 sys.argv 命令行参数获取,返 ...

  5. python之模块random,time,os,sys,序列化模块(json,pickle),collection

    引入:什么是模块:   一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类型. 1.使用python编写的代码(.py ...

  6. python内置模块介绍(一)

     本文主要介绍模块列表如下: os sys re time datetime random shutil subprocess os模块 os.getcwd()                    ...

  7. Python中的random模块,来自于Capricorn的实验室

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  8. Python中的random模块

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  9. python学习之random模块

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

随机推荐

  1. 解码base64加密的图片并打印到前台

    经过base64加密的图片对象是一串字符串,我们解码后可通过流将其打印出来: utils类: package com.aebiz.app.web.modules.controllers.open.ap ...

  2. Eclipse使用solrJ 7.7.0连接solr步骤

    先写一个测试类: package com.taotao.rest.solrj; import org.apache.solr.client.solrj.SolrClient; import org.a ...

  3. springboot+layui实现PC端用户的增删改查 & 整合mui实现app端的自动登录和用户的上拉加载 & HBuilder打包app并在手机端下载安装

    springboot整合web开发的各个组件在前面已经有详细的介绍,下面是用springboot整合layui实现了基本的增删改查. 同时在学习mui开发app,也就用mui实现了一个简单的自动登录和 ...

  4. spring-session+Redis实现Session共享

    关于session共享的方式有多种: (1)通过nginx的ip_hash,根据ip将请求分配到对应的服务器 (2)基于关系型数据库存储 (3)基于cookie存储 (4)服务器内置的session复 ...

  5. JAVA并行异步编程,线程池+FutureTask

    java 在JDK1.5中引入一个新的并发包java.util.concurrent 该包专门为java处理并发而书写. 在java中熟悉的使用多线程的方式为两种?继续Thread类,实现Runnal ...

  6. P4070 [SDOI2016]生成魔咒

    题目地址:P4070 [SDOI2016]生成魔咒 相信看到题目之后很多人跟我的思路是一样的-- 肯定要用 SA(P3809 [模板]后缀排序) 肯定要会求本质不同的子串个数(P2408 不同子串个数 ...

  7. Linux下设置时间

    Linux下设置时间 提供两种最根本有效的方式,就是更改时区.这里以更改为国内上海时间例子,其他地方时区同理. 方法一 备份文件 mv /etc/localtime /etc/localtime.ba ...

  8. 【转】C++标准转换运算符static_cast

    static_cast<new_type> (expression) 虽然const_cast是用来去除变量的const限定,但是static_cast却不是用来去除变量的static引用 ...

  9. oracle 会话 解锁

    背景 这是当年第一次记录博客,当初记录的原因是感觉有些问题很少碰到,碰到有网上寻找一遍,文章很少是正好对症的,折腾半天终于解决了,但是没有记录过程,结果下次碰到又要从来一次.有的问题还极其不好找,or ...

  10. 基于数组的循环队列(C++模板实现)

    循环队列使用数组实现的话,简单.方便.之前实现的队列,当尾端索引到达队列最后的时候,无论前面是否还有空间,都不能再添加数据了.循环队列使得队列的存储单元可以循环利用,它需要一个额外的存储单元来判断队列 ...