【发布时间】:2014-09-27 14:06:41
【问题描述】:
这是我在程序中使用的例程(见下文),但我不断收到相同的错误。我该怎么做才能解决它?
def multiplos(n):
from numpy import unique
list=[]
list1=[]
list2=[]
for i in xrange(1,n+1):
s=17*i
if s%10==0 and s%2==0 and s%3==0 and s%8==0 and s%19==0 and s%11==0 and s%13==0 and s%17==0:
list=list+[s]
for i in xrange(1,n+1):
m=13*i
if m%10==0 and m%2==0 and m%3==0 and m%8==0 and m%19==0 and m%11==0 and m%13==0 and m%17==0:
list1=list1+[m]
for i in xrange(1,n+1):
t=7*i
if t%10==0 and t%2==0 and t%3==0 and t%8==0 and t%19==0 and t%11==0 and t%17==0 and t%13==0:
list2=list2+[t]
#Concatenando las tres listas
lista_final=list+list1+list2
#Lista sin repeticiones
final=unique(lista_final)
return final
程序:
n=20000
from multiplos_7_13_17 import multiplos
mult=multiplos(n)
for i in xrange(mult):
if mult[i]%4==0 and mult[i]%6==0 and mult[i]%9==0 mult[i]%12==0 mult[i]%14==0 and mult[i]%15==0 and mult[i]%16==0 and mult[i]%17==0 and$
print "¡Lo has encontrado!",mult[i]
else:
print "Este no es...D:"
错误TypeError: only length-1 arrays can be converted to Python scalars 打印在for i in xrange(mult): 中
【问题讨论】:
-
你要么想要
for num in mult:要么想要for i in xrange(len(mult)):可能是前者。 -
我更改了程序,我想评估列表中的每个术语(mult),看看哪个满足条件
-
if 语句末尾的
and$应该是什么? -
表示要显示“print !Lo has encontrado!”,mult[i]...mult[i]需要满足print上一行的所有语句
-
and$绝对不是有效的 Python。您还缺少if语句中谓词之间的几个and语句(mult[i]%9==0 mult[i]%12==0 mult[i]%14==0不是有效的 Python,您需要在每个谓词之间使用and)。