描述:
- 以整數17為隨機數種子,獲取用戶輸入整數N為長度,產生3個長度為N位的密碼,密碼的每位是一個數字。每個密碼單獨一行輸出。
- 產生密碼采用random.randint()函數。
方法1:
通過randint(a,b)范圍來生成隨機密碼;
通過random.seed()來定義隨機數種子;
import random
def genpwd(length):
a = 10**(length-1) #定義隨機數范圍下限
b = 10**length - 1 #定義隨機數范圍上限
return "{}".format(random.randint(a, b))
length = eval(input())
random.seed(17) #設置隨機數種子
for i in range(3):
print(genpwd(length))`
方法2:
使用列表推導式,把數字列表轉換成字符串列表
使用.join()函數,將序列中的元素以指定的字符連接生成一個新的字符串。
import random
def genpwd(length):
l=[str(random.randint(0,9)) for i in range(length)] #列表推導,生成字符串列表
return eval(''.join(l)) 列表元素連接生成字符串,並用eval輸出
length = eval(input())
random.seed(17)
for i in range(3):
print(genpwd(length))
(以上題學到了三個知識點:)
- 10(length-1),10length-1來根據長度確定上下限問題;
- 數值列表轉換字符列表辦法。
- .join()函數的用法,只適用於字符串列表的重新排列生成
以上內容是參加國家精品在線開放課"Python語言程序設計"(中國大學MOOC平台)對應的實踐課程練習,第15次開課。嵩天 老師