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. jquery.lazyload插件实现图片延迟加载详解

    什么是LazyLoad技术? 在页面上图片比较多的时候,打开一张页面必然引起与服务器大数据量的交互.尤其是对于高清晰的图片,占了几百K的空间.Lazy Load 是一个用 JavaScript 编写的 ...

  2. Tomcat假死排查方案

    使用Tomcat作为Web服务器的时候偶尔会遇到Tomcat停止响应的情况,通过netstat查看端口情况会发现tomcat的端口出现大量的CLOSE_WAIT,此时Tomcat会停止响应前端请求,同 ...

  3. PHP超级全局变量

    $_get:地址栏上获取值 $_post:post表单发送数据 $_request:即有get也有post的内容 如果post和get重名:那么由设置项决定,比如request_crder=" ...

  4. 阮一峰:自适应网页设计(Responsive Web Design)别名(响应式web设计)

    随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通 ...

  5. Spring容器事件、自定义事件

    Spring容器内置事件,如容器的启动.停止.关闭.销毁等事件 <bean name="contextStartedHandler" class="com.nuts ...

  6. JavaScript事件代理入门

    事件代理(Event Delegation),又称之为事件委托.是 JavaScript 中常用绑定事件的常用技巧. 顾名思义,“事件代理”即是把原本需要绑定的事件委托给父元素,让父元素担当事件监听的 ...

  7. 20155231 2016-2017-2 《Java程序设计》第7周学习总结

    20155231 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 学习目标 了解Lambda语法 了解方法引用 了解Fucntional与Stream API ...

  8. Session详解、ASP.NET核心知识(8)

    介绍一下Session 1.作用 Cookie是存在客户端,Session是存在服务器端,目的是一样的:保存和当前客户端相关的数据(当前网站的任何一个页面都能取到Session). 在本篇博文的姊妹篇 ...

  9. Linux基础操作命令-打包压缩

    将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) 将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加) 将/1.txt./2.txt两个文件打包为 ...

  10. jquery ajax complete 方法

    jquery ajax var ajaxTimeoutTest = $.ajax({ url:'',  //请求的URL timeout : 1000, //超时时间设置,单位毫秒 type : 'g ...