1. 程式人生 > >python內置模塊--random

python內置模塊--random

python、random

random模塊

random顧名思義,用於生成隨機字符串,具體用法如下

import random
lis = [1,2,3,4,5,6,7,8,9,10]

#隨機生成浮點數
print(random.random())          #隨機返回0~1之間的浮點數
print(random.uniform(1,10))     #隨機返回1~10之間的浮點數

#隨機生成整數
print(random.randint(1,10))         #隨機生成1~10之間的整數
print(random.randrange(0,10,2))     #隨機生成0~10之間的偶數
print(random.randrange(1,10,2))     #隨機生成1~10之間的基數

#操作序列、字符串
##從序列、字符串中隨機返回一個元素
print(random.choice(lis))
print(random.choice('abcdefg'))

##隨機截取序列、字符串中指定長度片段
print(random.sample(lis,2))
print(random.sample('abcdefg',2))

##打亂一個序列
random.shuffle(lis)
print(lis)

打印結果如下:

0.47626693393991737
4.0844448042717225
8
8
1
4
g
[9, 4]
['f', 'a']
[7, 6, 1, 2, 10, 3, 4, 8, 5, 9]

例子:

#-*- coding:utf-8 -*-
#隨機密碼生成器,必須含有大小寫字母、數字和符號
'''
(ASCII碼)
數字:[48,57]
小寫字母:[97,122]
大寫字母:[65,90]
符號:[33,47]
'''
import random
pass_num = int(input("請輸入密碼長度:"))
my_num = pass_num-4
mast_list = []      #用於隨機收集大小寫字母、數字和符號的ASCII碼各一個
ascii_list = []     #用於隨機收集剩下的密碼字符對應的ASCII碼
passwd_list = []    #用於收集由ASCII碼轉換後的字符
number = range(48,58)
s_letter = range(97,123)
b_letter = range(65,91)
symbol = range(35,38)

def creat_mast(lis):
    a = random.choice(lis)
    mast_list.append(a)

creat_mast(number)
creat_mast(s_letter)
creat_mast(b_letter)
creat_mast(symbol)
random.shuffle(mast_list)

def creat_list(lis):
    for i in lis:
        ascii_list.append(i)

creat_list(number)
creat_list(s_letter)
creat_list(b_letter)
creat_list(symbol)

ascii_list = random.sample(ascii_list,my_num) + mast_list

for i in ascii_list:
    a = chr(i)
    passwd_list.append(a)

my_pass = "".join(passwd_list)
print('隨機密碼為:%s'%(my_pass))


python內置模塊--random