day5模块学习--random模块

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(65,91))
    code = ""
    ‘‘‘大写字母对应的数字编码‘‘‘
    ‘‘‘定义一个空的列表,用于存放大小写字母对应的值‘‘‘
    for num in range(97,123):
        ‘‘‘小写字母对应的数字编码,凭借到一块‘‘‘
        lists.append(num)

    for i in range(6):
        random_num = random.randint(1,6)       #随机值,当随机值与循环值相等的时候是字母,不相等的时候是数字,这样就生成了字母加数字的随机验证码
        if i == random_num:
            string = chr(random.choice(lists))
        else:
            string = str(random.randint(0,9))
        code += string

    return code

x = verification_code()
print(x)

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

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

import random

def verification_code():
    ‘‘‘生成一个随机验证码‘‘‘
    ‘‘‘生成一个65-90,97-122的序列‘‘‘
    numbers = list(range(65,123))
    for num in range(91,97):
        numbers.remove(num)

    ‘‘‘把序列进行打乱‘‘‘
    random.shuffle(numbers)
    random_strs = random.sample(numbers,2)
    ‘‘‘生成两个随机数‘‘‘
    random_nums = []
    ‘‘‘存放随机验证码‘‘‘
    for random_str in random_strs:
        random_nums.append(chr(random_str))
    for random_num in range(0,2):
        random_nums.append(str(random.randint(1,9)))

    code = "".join(random_nums)

    return code

x_code = verification_code()
print(x_code)

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

时间: 2024-10-12 18:42:41

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

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

作完一个作业,开始新的学习: 有由今天的时间有限所有学习了以下两个模块,明天继续! 时间模块.random模块 import time 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import time ,datetime 5 print(time.process_time())#测量处理器运算时间,不包括sleep时间 6 7 print(time.altzone)#返回与UTC时间的时间差 以秒计算 8

day5模块学习 -- os模块学习

python基础之模块之os模块 os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小-- 另外,os模块不受平台限制,也就是说:当我们要在linux中显示当前命令时就要用到pwd命令,而Windows中cmd命令行下就要用到这个,额...我擦,我还真不知道,(甭管怎么着,肯定不是pwd),这时候我们使用python中os模块的os.path.abspath

模块讲解----random模块(随机取值)

1 导入random模块 2 import random 3 4 #查看random的帮助: 5 # help(random) 6 7 8 #随机浮点数: 9 #用于生成一个0到1的0 >= n < 1.0的范围值 10 print(random.random()) 11 显示结果: 12 0.3530868757630614 13 14 15 #随机生成一个1~5的范围值: 16 print(random.uniform(1,5)) 17 显示结果: 18 1.374543829509071

python常用模块之random模块

一.random的作用 random模块是一个跟取随机值相关的模块,主要用于类似抽奖.验证码等场景 二.常用方法 random.random():产生一个0-1之间的随机数 print(random.random()) -------------------------------------------------------------------------------------- 0.13955850706432626 random.randint():产生一个指定范围的随机整数,这个

Python中常用的模块(random模块)

一.random模块简介 Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等. 二.random模块重要函数 1 ).random() 返回0<=n<1之间的随机实数n:2 ).choice(seq) 从序列seq中返回随机的元素:3 ).getrandbits(n) 以长整型形式返回n个随机位:4 ).shuffle(seq[, random]) 原地指定seq序列:5 ).sample(seq, n) 从序列se

2018年04月25日 logging模块、os.name模块、sys模块、random模块、string模块

logging模块 官方文档:https://docs.python.org/3.6/library/logging.html ''' 日志记录模块 日志的几个级别 debug info warning error critical ''' import logging # logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename

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

1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,在python中.一个.py文件就称为一个模块(Module) 使用模块的好处: 提高了代码的可维护性. 其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们编写程序的时候也经常引用其他模块,包括python的内置的模块和第三方模块. 包(package

模块讲解---time模块,datetime模块,random模块,hashlib模块和hmac模块,typing模块,requests模块,re模块

目录 1. 包 2. time模块 ??1. 优先掌握 2. 了解 3. datetime模块 ??1. 优先掌握 4. random模块 ??1. 优先掌握 ??2. 了解 5. hashlib模块和hmac模块 6. typing模块 7. requests模块 8. re模块 ??1. re模块的正则表达式的元字符和语法 ??2. 贪婪模式和非贪婪模式 ??3. 匹配邮箱实例 ??4. re模块中的常用功能函数 ??5. 修饰符 re.S ??6. 补充 目录 \1. 包 1. 优先掌握

day5模块学习--hashlib模块

hashlib模块     Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). 举个例子,你写了一篇文章,内容是一个字符串'how to use python hashlib - by Michael',并附上这篇文章的摘要是'2d73d4f15c0db7f5ecb321b6a65e5d6d'.如果有人篡改了你的文章,并发表为'ho