|
5鱼币
def isPrime(n):
for i in range(2,n):
if n%i == 0:
return False
break
else:
return True
def listPrime(*num):
list1 = list(filter(isPrime,num))
return list1
def printPrime(n):
counts = 0
for i in range(1,n+1):
if isPrime(i) == True:
print(i,end=' ')
counts += 1
if counts%10 == 0:
print()
strdata=input("请输入任意个数整数(以空格分隔):")
data =[int(x) for x in strdata.split(sep=' ')]
data = tuple(data)
s = list(map(lambda x:x**2,listPrime(data)))
s = sum(s)
print("你输入的数据中所有素数的平方和为:{}".format(s))
print("200以内的素数有:")
printPrime(200)
因为你的 data 没有解包,所以传进去的是一个元组,
所以你的listPrime中可变参数 num 打包后是一个包含元组的元组,
故对你的代码修改如下:(修改了第二十二行)def isPrime(n):
for i in range(2,n):
if n%i == 0:
return False
break
else:
return True
def listPrime(*num):
list1 = list(filter(isPrime,num))
return list1
def printPrime(n):
counts = 0
for i in range(1,n+1):
if isPrime(i) == True:
print(i,end=' ')
counts += 1
if counts%10 == 0:
print()
strdata=input("请输入任意个数整数(以空格分隔):")
data =[int(x) for x in strdata.split(sep=' ')]
data = tuple(data)
s = list(map(lambda x:x**2,listPrime(*data))) # 这里 data 加个 *
s = sum(s)
print("你输入的数据中所有素数的平方和为:{}".format(s))
print("200以内的素数有:")
printPrime(200)
|
最佳答案
查看完整内容
因为你的 data 没有解包,所以传进去的是一个元组,
所以你的listPrime中可变参数 num 打包后是一个包含元组的元组,
故对你的代码修改如下:(修改了第二十二行)
|