python3基礎06(隨機數的使用)
阿新 • • 發佈:2018-12-07
la=[0,1,2,3,4,5,6,7,8,9]
print(random.seed(10))
print(random.getrandbits(3))
#16位小數
re=print(random.random())
# 15位小數
re=print(random.uniform(0,9))
re=print(random.randrange(3))
re=print(random.randrange(0,9,1))
re=print(random.randint(0,9))
#隨機選擇一位元素 非空序列
re=print(random.choice(la))
re=print(random.choices(la,weights=None,cum_weights=2,k=3))
#生成k=3個元素組成的列表,根據權重去生成
print(random.choices([3,6,9], [2, 5, 7], k=3))
#
re=print(random.shuffle(['a','ff','cc','test']))
#生成新的序列 不重複 k為 元素個數
re=print(random.sample(la,k=5))
#根據生成的字元次數情況算概率
trial = lambda: random.choices('HT', cum_weights=(0.60, 1.00), k=7).count('H') >= 5
re=sum(trial() for i in range(10000)) / 10000
print(re)
trial = lambda : 2500 <= sorted(random.choices(range(10000), k=5))[2] < 7500
re=sum(trial() for i in range(10000)) / 10000
print(re)
#生成隨機數包含大寫字母+數字
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)
#指定生成位數的隨機數 包含字母和數字
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])
# result = ''.join(all_chars)
return result
if __name__ == '__main__':
print(gen_random_string(4))