python123测验5:函数和代码复用(第三周)

python123测验5:函数和代码复用(第三周)


第一题:随机密码生成
描述
补充编程模板中代码,完成如下功能:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬
以整数17为随机数种子,获取用户输入整数N为长度,产生3个长度为N位的密码,密码的每位是一个数字。每个密码单独一行输出。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

产生密码采用random.randint()函数。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入输出示例
输入 输出
3 634
524
926
我的代码:
#请在…补充代码
import random

def genpwd(length):
if length==1:
return random.randint(0,10)
elif length>1:
a=10**(length-1)
b=10**length
return random.randint(a,b)
length = eval(input())
random.seed(17)
for i in range(3):
print(genpwd(length))
官方答案:
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))

确实比我的简单一些,我想的太多了

第二题:连续质数计算
描述
补充编程模板中代码,完成如下功能:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

获得用户输入数字N,计算并输出从N开始的5个质数,单行输出,质数间用逗号,分割。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

注意:需要考虑用户输入的数字N可能是浮点数,应对输入取整数;最后一个输出后不用逗号。

我的解答:

def prime(m):
a=0
s=""
for i in range(m,m+100):
k=0
for j in range(1,i):
if(i%j==0):
k+=1
if(k<2):
a+=1
s += “{},”.format(i)
if(a>4):
break
return s
n = eval(input())
if(n>int(n)):
m=int(n)+1
else:
m=int(n)
print(prime(m)[0:-1])

官方答案:
def prime(m):
for i in range(2,m):
if m % i == 0:
return False
return True

n = eval(input())
n_ = int(n)
n_ = n_+1 if n_ < n else n_
count = 5

while count > 0:
if prime(n_):
if count > 1:
print(n_, end=",")
else:
print(n_, end="")
count -= 1
n_ += 1
其实我觉得我的简单一些哈哈哈哈哈

希望对你有所帮助!

你可能感兴趣的:(python123测验5:函数和代码复用(第三周))