python常用模块之random模块

在程序中很多会用到随机字符,比如登陆网站的随机验证码,通过random模块可以很容易生成随机字符串

1.random.randrange():返回1-10之间的一个随机数

In [2]: random.randrange(0,10)
Out[2]: 1 In [3]: random.randrange(0,10)
Out[3]: 5 In [4]: random.randrange(0,10)
Out[4]: 2

2.random.randint():返回1-10之间的一个随机数

In [5]: random.randint(0,10)
Out[5]: 3 In [6]: random.randint(0,10)
Out[6]: 2 In [7]: random.randint(0,10)
Out[7]: 1

那么?random.randrange()random.randint()的功能是一样的,为什么还要说呢?举个例子看一下:

# random.randrange()
In [15]: random.randrange(0,1)
Out[15]: 0 In [16]: random.randrange(0,1)
Out[16]: 0 In [17]: random.randrange(0,1)
Out[17]: 0
# random .randint()
In [18]: random.randint(0,1)
Out[18]: 1 In [19]: random.randint(0,1)
Out[19]: 1 In [20]: random.randint(0,1)
Out[20]: 1 In [21]: random.randint(0,1)
Out[21]: 0

总而言之,randrange不会包括1,而randint会包括1

# 随机选取0-100之间的偶数
In [23]: random.randrange(0,100,2)
Out[23]: 62 In [24]: random.randrange(0,100,2)
Out[24]: 78 In [25]: random.randrange(0,100,2)
Out[25]: 54

3.randdom.random():返回一个随机浮点数

In [26]: random.random()
Out[26]: 0.6650128371458242 In [27]: random.random()
Out[27]: 0.7953723772675672

4.random.choice():返回一个给定数据集合中的字符

In [31]: random.choice("abcdef!@#$%")
Out[31]: '$' In [32]: random.choice("abcdef!@#$%")
Out[32]: '!'

5.random.sample():从多个字符中选取特定数量的字符

In [33]: random.sample("abcd!@#$",3)
Out[33]: ['@', 'c', 'd'] In [34]: random.sample("abcd!@#$",3)
Out[34]: ['b', '#', 'c']

6.生成随机字符串

In [35]: import string   # 导入string模块

In [36]: string.digits  # 数字
Out[36]: '0123456789' In [37]: string.ascii_letters # ASCII码表中的英文字母
Out[37]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' In [38]: string.ascii_lowercase # 小写英文字母
Out[38]: 'abcdefghijklmnopqrstuvwxyz' In [39]: string.ascii_uppercase # 大写英文字母
Out[39]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # 开始生成随机字符串
In [3]: random.sample("string.digits + string.ascii_letters",4) # 让数字和大小写的英文字母相加形成一个随机字符串池
Out[3]: ['i', 't', ' ', 's'] In [4]: random.sample("string.digits + string.ascii_letters",4)
Out[4]: ['t', 'g', 'n', 'r'] In [5]: random.sample("string.digits + string.ascii_letters",4)
Out[5]: ['n', '.', 's', 'i']

7.洗牌

In [6]: a = list(range(0,10))

In [7]: a
Out[7]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [8]: random.shuffle(a) # 打乱顺序称为洗牌 In [9]: a
Out[9]: [7, 9, 2, 8, 6, 0, 5, 4, 3, 1] In [10]: random.shuffle(a) In [11]: a
Out[11]: [0, 4, 5, 8, 1, 3, 6, 7, 9, 2]

python常用模块之random模块的更多相关文章

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

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

  2. Python之数据加密与解密及相关操作(hashlib模块、hmac模块、random模块、base64模块、pycrypto模块)

    本文内容 数据加密概述 Python中实现数据加密的模块简介 hashlib与hmac模块介绍 random与secrets模块介绍 base64模块介绍 pycrypto模块介绍 总结 参考文档 提 ...

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

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

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

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

  5. Python基础系列讲解——random模块随机数的生成

    随机数参与的应用场景大家一定不会陌生,比如密码加盐时会在原密码上关联一串随机数,蒙特卡洛算法会通过随机数采样等等.Python内置的random模块提供了生成随机数的方法,使用这些方法时需要导入ran ...

  6. Python常用内置模块之xml模块

    xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.从结构上,很像HTML超文本标记语言.但他们被设计的目的是不同的,超文本标记语言被设计用来显示 ...

  7. Python 入门之 内置模块 -- random模块

    Python 入门之 内置模块 -- random模块 1.random模块 import random # random -- 随机数 (1)选择1-50之间随机的整数 print(random.r ...

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

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

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

    1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...

随机推荐

  1. [JavaScript]YYYY-MM-DD格式字符串计算年龄

    function getAge(birth){ birth = birth.replace(/-/g,"/"); //把格式中的"-"替换为"/&qu ...

  2. 重新想,重新看——CSS3变形,过渡与动画③

    这一篇主要谈谈CSS3的过渡属性. 过渡属性被设计的十分通俗易懂,属性写法为transition,有四个子属性: <transition-property> 表示需要过渡的属性[必须](本 ...

  3. [NOIP2017]时间复杂度

    题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!下面请你编写程序 ...

  4. KVM配置及维护

    kvm使用场景 1.公司测试环境/开发环境 测试开发环境可以使用配置低点的物理机就可以 2.公司生产环境 一般小公司没有私有云或容器团队,运维人员可能就1-2个,然后公司也不舍得花钱买商业化的私有云. ...

  5. linux按照进程名杀掉进程

    1.按照进程名杀掉进程 ps  -ef  | grep   sftp   | grep mysql  |grep -v grep | awk '{print("kill -9 ", ...

  6. 谈一谈URL

    作者:ManfredHu 链接:http://www.manfredhu.com/2017/08/16/22-url/index.html 声明:版权所有,转载请保留本段信息,谢谢大家 URL URL ...

  7. Math.Round 四舍五入问题 解惑 !

    前言: 一定要说 坑爹的微软! 坑爹的微软! 坑爹的微软!  重要的事情说 三遍 ! 摘录 SMDN 示例 下面的示例演示就近舍入. C# C++ VB   Math.Round(3.44, 1); ...

  8. R 中的哪些命令或者包让你相见恨晚?--转载知乎

    https://www.zhihu.com/question/24501195 节选: 看了这么多答案,觉得 Hadley Wickhamhad.co.nz 在R使用者的地位好高啊.其实我也觉得Had ...

  9. Enter键禁止表单提交

    Enter键禁止表单提交js代码: //禁用Enter键表单自动提交 document.onkeydown = function (event) { var target, code, tag; if ...

  10. 推荐给开发者的11个PHP框架(转)

    PHP框架对于Web开发者来说是非常有用的工具,它可以帮助使用者更快.更容易的完成项目.根据调查,PHP仍是Web开发中最受欢迎和最实用的平台之一.当谈及Web开发时,很多人依然会选择使用PHP框架, ...