[1] 轉載自 http://www.javashuo.com/article/p-uvmxnmtg-w.htmlhtml
從指定範圍內,按指定基數遞增的集合中 ,這篇文章就是對python生成隨機數的應用程序的部分介紹。python
隨機整數:
>>> import random
>>> random.randint(0,99)
21git
隨機選取0到100間的偶數:
>>> import random
>>> random.randrange(0, 101, 2)
42app
隨機浮點數:
>>> import random
>>> random.random()
0.85415370477785668
>>> random.uniform(1, 10)
5.4221167969800881dom
隨機字符:
>>> import random
>>> random.choice('abcdefg&#%^*f')
'd'ide
多個字符中選取特定數量的字符:
>>> import random
random.sample('abcdefghij',3)
['a', 'd', 'b']spa
多個字符中選取特定數量的字符組成新字符串:
>>> import random
>>> import string
>>> string.join(random.sample(['a','b','c','d','e','f','g','h','i','j'], 3)).r
eplace(" ","")
'fih'.net
隨機選取字符串:
>>> import random
>>> random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )
'lemon'code
洗牌:
>>> import random
>>> items = [1, 2, 3, 4, 5, 6]
>>> random.shuffle(items)
>>> items
[3, 2, 5, 6, 4, 1]orm
[2] 轉載自https://blog.csdn.net/zheng_lan_fang/article/details/76684761
如下是random模塊的方法:
- random.seed(a=None, version=2)
- random.getstate()
- random.setstate(state)
- random.getrandbits(k)
- random.randrange(stop)
- random.randrange(start, stop[, step])
- random.randint(a, b)
- random.choice(seq)
- random.choices(population, weights=None, *, cum_weights=None, k=1)
- random.shuffle(x[, random])
- random.sample(population, k)
- random.random()
- random.uniform(a, b)
- random.triangular(low, high, mode)
- random.betavariate(alpha, beta)
- random.expovariate(lambd)
- random.gammavariate(alpha, beta)
- random.gauss(mu, sigma)
- random.lognormvariate(mu, sigma)
- random.normalvariate(mu, sigma)
- random.vonmisesvariate(mu, kappa)
- random.paretovariate(alpha)
- random.weibullvariate(alpha, beta)
實例:
Basic examples:
- >>> random()
- 0.37444887175646646
-
- >>> uniform(2.5, 10.0)
- 3.1800146073117523
-
-
- >>> randrange(10)
- 7
-
- >>> randrange(0, 101, 2)
- 26
-
- >>> choice(['win', 'lose', 'draw'])
- 'draw'
-
- >>> deck = 'ace two three four'.split()
- >>> shuffle(deck)
- >>> deck
- ['four', 'two', 'ace', 'three']
-
- >>> sample([10, 20, 30, 40, 50], k=4)
- [40, 10, 50, 30]
-
-
- >>>
- >>> choices(['red', 'black', 'green'], [18, 18, 2], k=6)
- ['red', 'green', 'black', 'black', 'red', 'black']
-
- >>>
- >>>
- >>>
- >>> deck = collections.Counter(tens=16, low_cards=36)
- >>> seen = sample(list(deck.elements()), k=20)
- >>> seen.count('tens') / 20
- 0.15
-
- >>>
- >>>
- >>> trial = lambda: choices('HT', cum_weights=(0.60, 1.00), k=7).count('H') >= 5
- >>> sum(trial() for i in range(10000)) / 10000
- 0.4169
-
- >>>
- >>> trial = lambda : 2500 <= sorted(choices(range(10000), k=5))[2] < 7500
- >>> sum(trial() for i in range(10000)) / 10000
- 0.7958
-
- >>> from statistics import mean
- >>> from random import choices
-
- >>> data = 1, 2, 4, 4, 10
- >>> means = sorted(mean(choices(data, k=5)) for i in range(20))
- >>> print(f'The sample mean of {mean(data):.1f} has a 90% confidence '
- f'interval from {means[1]:.1f} to {means[-2]:.1f}')
下面是生成一個包含大寫字母A-Z和數字0-9的隨機4位驗證碼的程序
- import random
-
- checkcode = ''
- for i in range(4):
- current = random.randrange(0,4)
- if current != i:
- temp = chr(random.randint(65,90))
- else:
- temp = random.randint(0,9)
- checkcode += str(temp)
- print(checkcode)
下面是生成指定長度字母數字隨機序列的代碼:
- import random, string
-
-
- def gen_random_string(length):
-
- num_of_numeric = random.randint(1,length-1)
-
- num_of_letter = length - num_of_numeric
-
- numerics = [random.choice(string.digits) for i in range(num_of_numeric)]
-
- letters = [random.choice(string.ascii_letters) for i in range(num_of_letter)]
-
- all_chars = numerics + letters
-
- random.shuffle(all_chars)
-
- result = ''.join([i for i in all_chars])
- return result
-
- if __name__ == '__main__':
- print(gen_random_string(64))