random模塊

隨機小數

random.random()

取(0-1)之間的小數app

print(random.random())
屢次運行結果:
0.7625585812371684
0.41751820355234404
0.08773753644629267

random.uniform(m,n)

取(m-n)之間的小數dom

print(random.uniform(3, 4))
屢次運行結果:
3.316786336794635
3.2022091764571763
3.0448438517470997

隨機整數

random.randint(m,n)

隨機取m,n之間的整數,包括m以及n函數

print(random.randint(1, 3))
屢次運行結果:
3
1
1
2

random.randrange(m,n)

隨機取m,n之間的整數,包括m但不包括nmspa

print(random.randint(1, 3))
屢次運行結果:
1
1
2
1

random.randrange(m,n,k)

隨機在m,n區間內每兩個數的數列中取一個整數,一樣包括m,但不包括ncode

print(random.randrange(1, 4, 2))
屢次運行結果:
1
3
3

從列表中隨機取值:

random.choice

從列表中隨機取一個值orm

lst = ['a', 'b', (1, 2), 123]
print(random.choice(lst))
運行結果:
b
123

random.sample(list,n)

從列表中隨機取n個值blog

lst = ['a', 'b', (1, 2), 123]
print(random.sample(lst, 2))
運行結果:
['b', 'a']
[123, 'b']

打亂列表順序內存

random.shuffle

在原列表的基礎上修改,節省內存字符串

生成驗證碼函數的小練習it

要求能夠選擇生成驗證碼的位數以及純數字或是字母數字的組合形式

def func(n=4, flag=True):
    '''
    這個函數是用來:隨機生成字母數字的驗證碼
    :param n:驗證碼的位數,默認爲4
    :param flag:當flag爲True時輸出字母數字組合的驗證碼,爲False時輸出出數字,默認爲True
    :return:返回的是:驗證碼的字符串
    '''
    a = ""
    for i in range(n):
        num = random.randint(0, 9)
        if flag:
            alpha_upper = chr(random.randint(65, 90))
            alpha_lower = chr(random.randint(97, 122))
            num = random.choice([num, alpha_lower, alpha_upper])
        a = a+str(num)
    return a

拼手氣紅包的練習

# 版本一,數量越多,出現的極小金額越多
def func1(num, money):
    '''
    這個函數是用來 手氣紅包
    :param num:紅包個數
    :param money:紅包金額
    :return:返回的是 所搶紅包金額
    '''
    lst = []
    n = 1
    sum = 0
    for i in range(num-1):
        a = random.randint(1, money*100-(num-n)-sum)
        lst.append(a/100)
        n += 1
        sum += a
    lst.append((money*100-sum)/100)
    print(lst)
    lit = random.sample(lst, num)
    for j in lit:
        return j

print(func1(10, 200))

# 版本二,金額相對平均,與手氣相關程度小
def func2(num, money):
    money = money * 100
    ret = random.sample(range(1, money), num-1)
    ret.sort()
    ret.insert(0, 0)
    ret.append(money)
    for i in range(len(ret) - 1):
        yield (ret[i+1] - ret[i])/100

ret_g = func2(50, 10)
for money in ret_g:
    print(money)
相關文章
相關標籤/搜索