zoukankan      html  css  js  c++  java
  • python常用模块之random模块

    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]
    
    
  • 相关阅读:
    session的生命周期
    临远的spring security教程
    spring security原理图及其解释
    解决eclipse中出现Resource is out of sync with the file system问题
    从SOA到BFV【普元的一份广告文章】
    普元OA平台介绍
    门户平台
    企业门户平台解决方案
    使用 CAS 在 Tomcat 中实现单点登录
    CAS 跨域原理
  • 原文地址:https://www.cnblogs.com/xiaoyafei/p/9013535.html
Copyright © 2011-2022 走看看