我是python的初学者(一周)。在这里,我试着打印60的所有主因子的列表。但对于第19行,我得到以下错误: TypeError:%不支持的操作数类型:“float”和“list”
代码:
whylist = []
factor = []
boom = []
primefactor = []
n = 60
j = (list(range(1, n, 1)))
for numbers in j:
if n%numbers == 0:
whylist.append(numbers)
for everynumber in whylist:
factor.append(everynumber)
for things in factor:
u = (list(range(1, things, 1)))
d = float(things)
if d%u == 0:
boom.append(things)
if len(boom) == 1:
for every in boom:
primefactor.append(every)
print(primefactor)
我做错什么了?
要对列表中的每个元素应用数学运算,可以使用列表理解:
还有其他方法可以做到这一点。有时人们会使用
map
但是大多数人更喜欢第一种形式,这种形式通常比使用
lambda
更高效、更清晰(当您刚开始学习python时,这可能会有点混乱)。编辑
以下是您尝试的递归实现:
另一种选择是使用numpy数组而不是列表。
纽比会帮你处理广播业务。它也应该比列表理解或地图更快。
相关问题 更多 >
编程相关推荐