2022年 11月 5日

python随机函数

python随机函数

random, uniform, randint, randrange, shuffle, sample

  1. random()

    random():返回随机生成的一个实数,范围[0,1)

    import random  #random()方法不能直接访问,需要导入random模块,然后通过random静态对象调用该方法
    
    • 1
  2. random.random()

    random.random()方法用于生成一个0到1的随机浮点数:0<=n<=1.0

    Python 3.7.9 (default, Aug 31 2020, 17:10:11) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
    Type "help", "copyright", "credits" or "license" for more information.
    
    >>> import random
    >>> print(random.random())
    0.9813106591730276
    >>> print(random.random())
    0.7331968297842003
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  3. random.uniform

    random.uniform(a,b):用于生成一个指定范围内的随机浮点数。如果a>b,则b<=n<=a; 若a>b,则a<=n<=b.

    >>> import random
    >>> print(random.uniform(4,10))
    5.766155005725524
    >>> print(random.uniform(10,4))
    6.253381814573553
    
    • 1
    • 2
    • 3
    • 4
    • 5
  4. random.randint

    random.randint(a,b), 用于生成一个指定范围内的整数,必须满足a<=b,生成随机数n: a<=n<=b

    >>> import random
    >>> print(random.randint(5,10))
    8
    >>> print(random.randint(5,5))
    5
    >>> print(random.randint(5,1))	# 报错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "D:\Anaconda3\lib\random.py", line 222, in randint
        return self.randrange(a, b+1)
      File "D:\Anaconda3\lib\random.py", line 200, in randrange
        raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
    ValueError: empty range for randrange() (5,2, -3)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  5. random.randrange

    random.randrange(start, stop,step): 从指定范围内,按指定基数递增的集合中获取一个是随机数,如random.randrange(10, 20, 2),结果相当于从[10,12,14,16,18]中获取一个随机数。结果上与random.choice(range(10,20,2))一致

    >>> import random
    >>> print(random.randrange(10,20,2))
    14
    >>> print(random.randrange(10,12,2))
    10
    
    • 1
    • 2
    • 3
    • 4
    • 5
  6. random.choice

    random.choice(sequence): sequence表示一个有序类型。sequence在python不是一种特定的类型,而是泛指一系列的类型:list, tuple, 字符串等

    >>> import random
    >>> print (random.choice("喜欢Python?"))
    t
    >>> print (random.choice("喜欢Python?"))>>> print(random.choice(["Joob","python","bodd"]))
    bodd
    >>> print(random.choice(["Joob","python","bodd"]))
    python
    >>> print(random.choice(("Tuple", "List", "Dicti")))
    List
    >>> print(random.choice(("Tuple", "List", "Dicti")))
    Dicti
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  7. random.shuffle

    random.shuffle(x[,random]): 用于将一个列表中的元素打乱

    >>> import random
    >>> p = ["Joob","python","bodd"]
    >>> random.shuffle(p)
    >>> p
    ['Joob', 'python', 'bodd']
    >>> random.shuffle(p)
    >>> p
    ['bodd', 'Joob', 'python']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  8. random.sample

    random.sample(sequeence,k): 从指定序列中随机获取指定长度的片段,但不会修改原有的序列

    >>> import random
    >>> list = [1, 2, 3, 4, 5, 6, 7]
    >>> a = random.sample(list,3)
    >>> a
    [5, 1, 4]
    >>> a = random.sample(list,4)
    >>> a
    [2, 4, 7, 5]
    >>> list
    [1, 2, 3, 4, 5, 6, 7]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10