python內置模塊--random
阿新 • • 發佈:2018-06-12
python、randomrandom模塊
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