python内置模块random是用来生成随机数的,在许多场合都能应用到,算是比较常见的一种模块吧,下面详细介绍其具体用法。

基本用法

  • 随机生成浮点数:有两种,一种没有参数,默认是0~1,另一种可以指定随机生成的浮点数范围。
>>> random.random()
0.6448965915384378
>>> random.uniform(5,6)
5.1662895382835075
  • 随机生成指定范围的整数:有两种方法,第二种除了可以指定范围,还可以指定步长。
>>> random.randint(1,10)
5
>>> random.randrange(1,10)
6
>>> random.randrange(1,10,2)
1
  • 随机生成指定样式中的元素:样式可以是字符串、元组、列表。
random.choice((1,2,'a','b'))
2
>>> random.choice([1,2,3,4])
1
>>> random.choice("qwerty")
't'
  • 随机生成指定数目的指定样式中的元素:样式可以是字符串、元组、列表、集合。
>>> random.sample("abcedf",2)
['c', 'e']
>>> random.sample((1,2,8,5,6),3)
[6, 5, 2]
>>> random.sample(['a','b','c','d','f'],2)
['f', 'd']
>>> random.sample({1,2,3,4,5},3)
[2, 4, 3]
>>>
  • 将列表的元素的顺序打乱:类似于生活中的洗牌,此方法返回值为空,将改变原来列表。
>>> item = [1,2,3,4,5,6,7]
>>> random.shuffle(item)
>>> print(item)
[3, 6, 4, 2, 7, 1, 5]

简单实际应用

  • 随机生成六位数字验证码
import random

def func():
captcha = ''
for i in range(6):
num = random.randint(0,9)
captcha += str(num)
return captcha
captcha = func()
print(captcha)
648215
  • 随机生成六位数字和区分大小写字母混合的验证码

这里我们要知道一点的是,在国际标准ASCII码中规定了字符A~Z的ASCII值为65~90,a~z的ASCII值为97~122。python内置方法chr可以将对应的ASCII值转换成对应的字符。

import random

def func():
captcha = ''
for i in range(6):
a = random.randint(1,3)
if a == 1:
num = random.randint(0,9)
captcha += str(num)
elif a == 2:
num = random.randint(65,90)
captcha += str(chr(num))
elif a == 3:
num = random.randint(97, 122)
captcha += str(chr(num))
return captcha
captcha = func()
print(captcha)
qLK77Y

python3.6内置模块——random详解的更多相关文章

  1. mac上python3.x安装 图文详解

    mac安装brew报错及解决办法 https://blog.csdn.net/zdp072/article/details/82563320 更改脚本中的资源链接,替换成中国科学技术大学的镜像 htt ...

  2. python3 内置函数详解

    内置函数详解 abs(x) 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小. # 如果参数是复数,则返回其大小. >>> abs(-25) 25 >&g ...

  3. python3内置函数详解

    内置函数 注:查看详细猛击这里 abs() 对传入参数取绝对值 bool() 对传入参数取布尔值, None, 0, "",[],{},() 这些参数传入bool后,返回False ...

  4. linux上安装Python3和django流程详解

    1.安装python3 1.1 安装相关依赖库(工具包)  --->很重要 yum install gcc patch libffi-devel python-devel zlib-devel ...

  5. Python3之Requests模块详解

    # 导入 Request模块 # 若本机无自带Request模块,可自行下载或者使用pip进行安装 # python版本Python3 import requests import json #### ...

  6. Math.random()详解

    Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码.例如:double a=Math.random()*(3-1)+1,设置 ...

  7. JAVA Random 详解

    Java中存在着两种Random函数: 一.java.lang.Math.Random; 调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范 ...

  8. Python3.5 queue模块详解

    queue介绍 queue是python中的标准库,俗称队列,可以直接import 引用,在python2.x中,模块名为Queue 在python中,多个线程之间的数据是共享的,多个线程进行数据交换 ...

  9. (转)Python3.5 queue模块详解

    原文:https://www.cnblogs.com/CongZhang/p/5274486.html queue介绍 queue是python中的标准库,俗称队列,可以直接import 引用,在py ...

随机推荐

  1. c++程序—输入

    #include<iostream> using namespace std; #include<string> int main() { string str = " ...

  2. my97datepicker实现日期改变立刻触发函数

    <input type="text" class="Wdate" onclick="WdatePicker({onpicking:functio ...

  3. COGS1487 麻球繁衍

    不会做%%http://blog.csdn.net/doom_bringer/article/details/50428503 #include<bits/stdc++.h> #defin ...

  4. Pickle incompatibility of numpy arrays between Python 2 and 3

    Traceback (most recent call last): File "mnist.py", line 7, in <module> train_set, v ...

  5. OC Swift混编-Swift.h File not found

    https://www.jianshu.com/p/f860fe1718ca 2016.09.13 11:53* 字数 266 阅读 1935评论 1喜欢 1 今天碰到个神坑,本人项目是OC项目,最近 ...

  6. bugku-Web-多次(异或注入,判断被过滤的关键字)

    进去看到url感觉是sql注入, 加上',报错但是%23不报错,加上'--+,也不报错,说明可以用--+注释 加上' or 1=1--+,报错 尝试' oorr 1=1--+,正常 说明or被过滤了. ...

  7. 体验京东云 Serverless+AI 人脸属性识别

    云原生计算基金会CNCF(Cloud Native Computing Foundation, CNCF)Serverless Whitepaper v1.0对无服务器计算作了如下定义: Server ...

  8. linux 用户与文件常用命令

    用户与文件 su :切换到超级用户 su - l chesney : 切换到chesney用户 sudo usermod -G sudo -a chesney:把chesney 加入到sudo组 su ...

  9. 标准库模块——json模块

    将Python数据类型转换为其他代码格式叫做(序列化),而json就是在各个代码实现转换的中间件. 序列化要求: 1. 只能有int,str,bool,list,dict,tuple的类型支持序列化. ...

  10. flink和spark Streaming中的Back Pressure

    Spark Streaming的back pressure 在讲flink的back pressure之前,我们先讲讲Spark Streaming的back pressure.Spark Strea ...