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. 如何为openwrt中的某个模块生成PKG_MIRROR_HASH

    答:介绍两种方法,第一种自动生成(当然使用自动的啦),第二种手动生成 第一种方法: 1.在软件包的Makefile中让此项写成这样PKG_MIRROR_HASH:=skip  (如果不加上skip,那 ...

  2. 如何使用openwrt下的分区表生成器ptgen

    1.基本用法如下: ptgen [-v] -h <heads> -s <sectors> -o <outputfile> [-a 0..4] [-l <ali ...

  3. git重命名分支名

    git branch -m old_branch_name new_branch_name

  4. POJ_1703 并查集应用

    通过这题基本完整理解了并查集的构建和使用.很轻巧的一种数据结构. 本题的方法值得注意:并没有直接构建两个帮派的集合,而是构建: 关系确认集合+若干单元素集(也即未确认帮派的初始状态)并辅助一个rel数 ...

  5. iOS开发进阶 - 富文本正则替换表情

    移动端访问不佳,请访问我的个人博客 最近写项目需要用到富文本解析字符串显示表情,下面是我使用正则替换实现富文本的方式,希望能帮助到大家 先上效果图和demo地址 实现过程中需要用到的知识点 NSReg ...

  6. spring 概念理解

    一.Spring的IoC(Inversion of Control).这是Spring中得有特点的一部份.IoC又被翻译成“控制反转”,也不知道是谁翻译得这么别扭,感觉很深奥的词.其实,原理很简单,用 ...

  7. LeetCode——Nth Digit

    Question Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... ...

  8. Hive的三种Join方式

    Hive的三种Join方式 hive Hive中就是把Map,Reduce的Join拿过来,通过SQL来表示. 参考链接:https://cwiki.apache.org/confluence/dis ...

  9. easyui combobox 拼音检索快捷选择输入

    easyui combobox 拼音检索快捷选择输入 效果如图   $.ajax({ url: UserActionUrl + '?action=listuserworktype', dataType ...

  10. UVa 11324 最大团(强连通分量缩点)

    https://vjudge.net/problem/UVA-11324 题意:给一张有向图G,求一个结点数最大的结点集,使得该结点集中任意两个结点u和v满足,要么u可以到达v,要么v可以达到u. 思 ...