Python中的random模块用于生成随机数

下面具体介绍random模块的功能:

  1.random.random()

#用于生成一个0到1的浮点数   随机浮点数:0<= n < 1.0

>>> import random
  >>> random.random()
  0.10014889182317255
  >>> random.random()
  0.9318386759483899
  >>> random.random()
  0.7933067981427825

    2.random.uniform(a,b)

#用于生成一个指定范围内的随机浮点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成随机数n:a <= n <= b。如果a < b,则b <= n <= a。

>>> random.uniform(1,4)
  3.1024302829110297
  >>> random.uniform(4,1)
  3.604505878728916
  >>> random.uniform(2,3)
  2.987738694261377
  >>> random.uniform(3,3)
  3.0

    3.random.randint(a, b)

#用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n:a <= n <= b

    >>> random.randint(1,3)
  2
  >>> random.randint(3,3)
  3

    4.random.randrange([start], stop[, step])

#从指定范围内,按指定基数递增的集合中,获取一个随机数

random.randrange(10,30,2),结果相当于从[10,12,14,16,...,28]序列中获取一个随机数。random.randrange(10,30,2)在结果上与random.choice(range(10,30,2)等效。

一直以为random.randrange()与random.randint()功能类似,只是randint()包含下限,而random.randrange()不包含下限,原来random.randrange()可以指定步长,说明这是一个区域其实,random.randint()在上下限随机去一个值,random.randrange()是在数列中随机去一个数。

>>> random.randrange(2,10,3)
  5
  >>> random.randrange(2,10)
  3
  >>> random.randrange(2,10,3)
  8

    5.random.choice(sequence)

#参数sequence表示一个有序类型。从序列中获取一个随机元素,sequence在Python不是一种特定的类型,而是泛指一系列类型。list,tuple,字符串(str)都属于sequence。

random.chocice是从sequence中随机取一个元素,如列表,字符串,元组中随机取一个元素。

>>> name = "alexssb"
  >>> names = ("alex","250","is")
  >>> x = list(range(2,8))
  >>> random.choice(name)     #从字符串中取值
  'a'
  >>> random.choice(names)    #从元组中随机提取元素
  'alex'
  >>> random.choice(names)   
  'is'
  >>> random.choice(x)         #从列表中随机提取元素
  4

    6.random.shuffle(x[, random])

#用于将一个列表中的元素打乱,即将列表内的元素随机排列。

>>> random.shuffle(x)
  >>> x
  [3, 4, 7, 5, 6, 2]

random.shuffle(list)用于将列表里面的元素随机打乱。

    7.random.sample(sequence, k)

#从指定序列中随机获取指定长度的片断并随机排列。sample函数不会修改原有序列。

>>> names = ["alex","tenglan","chunyun","geng","aoi","cang"]
  >>> random.sample(names,4)
  ['chunyun', 'alex', 'geng', 'aoi']
  >>> names
  ['alex', 'tenglan', 'chunyun', 'geng', 'aoi', 'cang']

random.sample(sequence,k)从列表中随机获取一个元素

下面现在用random模块来写一个随机验证码。我们知道,随机验证码有大小写字母组成。也包含数字。下面来看看如何生成一个随机验证码。

import random

def verification_code():
'''生成一个随机验证码'''
lists = list(range(,))
code = ""
'''大写字母对应的数字编码'''
'''定义一个空的列表,用于存放大小写字母对应的值'''
for num in range(,):
'''小写字母对应的数字编码,凭借到一块'''
lists.append(num) for i in range():
random_num = random.randint(,) #随机值,当随机值与循环值相等的时候是字母,不相等的时候是数字,这样就生成了字母加数字的随机验证码
if i == random_num:
string = chr(random.choice(lists))
else:
string = str(random.randint(,))
code += string return code x = verification_code()
print(x)

上面代码生成一个6位数的随机验证码。

也可以生成一个随机验证码,让每次里面都包含数字和字母。如下:

import random

def verification_code():
'''生成一个随机验证码'''
'''生成一个65-90,97-122的序列'''
numbers = list(range(,))
for num in range(,):
numbers.remove(num) '''把序列进行打乱'''
random.shuffle(numbers)
random_strs = random.sample(numbers,)
'''生成两个随机数'''
random_nums = []
'''存放随机验证码'''
for random_str in random_strs:
random_nums.append(chr(random_str))
for random_num in range(,):
random_nums.append(str(random.randint(,))) code = "".join(random_nums) return code x_code = verification_code()
print(x_code)

上面代码生成一个随机验证码,每次都包含字母,不会只有数字或者之后字母的情况发生。

day5模块学习--random模块的更多相关文章

  1. python第十七天---时间模块、random模块

    作完一个作业,开始新的学习: 有由今天的时间有限所有学习了以下两个模块,明天继续! 时间模块.random模块 import time #!usr/bin/env python #-*-coding: ...

  2. python常用模块之random模块

    python常用模块之random模块 在程序中很多会用到随机字符,比如登陆网站的随机验证码,通过random模块可以很容易生成随机字符串 1.random.randrange():返回1-10之间的 ...

  3. Py修行路 python基础 (二十)模块 time模块,random模块,hashlib模块,OS及sys模块

    一.前提介绍: 可以开辟作用域的只有类,函数,和模块            for循环 if,else: 不能开辟自己的作用域 避免程序复用和重复调用,将这些写到一个.py文件中,做成一个模块,进行调 ...

  4. (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...

  5. [时间模块、random模块]

    [时间模块.random模块] time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏 ...

  6. python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time & datetime模块

    正则表达式   语法:             mport re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0 ...

  7. day5模块学习 -- os模块学习

    python基础之模块之os模块 os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/ ...

  8. python学习之老男孩python全栈第九期_day019知识点总结——collections模块、时间模块、random模块、os模块、sys模块

    一. collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counte ...

  9. python学习之【第十六篇】:Python中的常用模块之OS模块、sys模块、random模块

    1. OS模块 OS模块是与操作系统交互的一个接口.内部提供了以下方法: os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname& ...

随机推荐

  1. Solr常用命令总结

    前提条件: 安装solr版本:4.8.0 部署solr路径:/data/solr-4.8.0 1. 通过zookeeper上传一些配置信息: 通过zk命令将配置信息上传到zk环境中: /data/so ...

  2. java基础-Map集合

    java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...

  3. Linux QT数据库之登录注册

    视频链接:https://www.bilibili.com/video/av11673511/ main.cpp #include <QSqlDatabase> #include < ...

  4. Java操作Kafka执行不成功的解决方法,Kafka Broker Advertised.Listeners属性的设置

    创建Spring Boot项目继承Kafka,向Kafka发送消息始终不成功.具体项目配置如下: <?xml version="1.0" encoding="UTF ...

  5. linux下常用的几个时间函数:time,gettimeofday,clock_gettime,_ftime

    time()提供了秒级的精确度 1.头文件 <time.h> 2.函数原型 time_t time(time_t * timer) 函数返回从TC1970-1-1 0:0:0开始到现在的秒 ...

  6. 2008ZJOI树的统计

    codevs 2460 树的统计 http://codevs.cn/problem/2460/ 2008年省队选拔赛浙江  题目等级 : 大师 Master   题目描述 Description 一棵 ...

  7. 基于受限玻尔兹曼机(RBM)的协同过滤

    受限玻尔兹曼机是一种生成式随机神经网络(generative stochastic neural network), 详细介绍可见我的博文<受限玻尔兹曼机(RBM)简介>, 本文主要介绍R ...

  8. Java 对象初始化生命周期

    class Man { String name; int age = 20; public static int sex = 1; Man(String name, int age) { //supe ...

  9. 写给“有钱大爷”、”美工殿下”、“前端文艺青年”的微信HTML5页面设计建议

    ==============================   2018更新 iphone X 的设计内容   ==============================     我保证你一分钟就 ...

  10. js中同步与异步处理方法

    在使用异步请求时,有时需要将异步请求的结果返回给另一个js函数,此种情况下会出现未等异步请求返回请求结果,该发送请求所在js函数已经执行完后续操作,即已经执行return ,这样会导致return的结 ...