描述:
- 以整数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次开课。嵩天 老师