这个程序为什么执行不了?
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 =
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 =
data = tuple(data)
s = list(map(lambda x:x**2,listPrime(*data))) # 这里 data 加个 *
s = sum(s)
print("你输入的数据中所有素数的平方和为:{}".format(s))
print("200以内的素数有:")
printPrime(200) 有报错信息吗? isdkz 发表于 2022-3-2 21:34
因为你的 data 没有解包,所以传进去的是一个元组,
所以你的listPrime中可变参数 num 打包后是一个包含 ...
谢谢😊 风百默 发表于 2022-3-3 13:47
谢谢😊
不客气{:5_109:}
页:
[1]