在理解python 3.x'中的sum()时遇到问题;int';对象是不可编辑的
当我尝试运行这段代码时,我得到int是不可编辑的。。。。当我尝试执行注释代码时,它运行良好。有谁能告诉我commneted代码和used for循环代码之间的区别,以及使用sum()时可能出现的问题。您的函数返回一个数字,因此无法求和。这是失败的:在理解python 3.x'中的sum()时遇到问题;int';对象是不可编辑的,python,Python,当我尝试运行这段代码时,我得到int是不可编辑的。。。。当我尝试执行注释代码时,它运行良好。有谁能告诉我commneted代码和used for循环代码之间的区别,以及使用sum()时可能出现的问题。您的函数返回一个数字,因此无法求和。这是失败的: 返回和(除数(num)),因为除数返回一个数字。我想您希望在for循环中获得收益率: defd(num,使用_yield=True): 返回和(除数(num,使用_收益率)) def除数(num,use_yield=True): 如果使用产量: 对于
返回和(除数(num)),因为除数返回一个数字。我想您希望在
for
循环中获得收益率:
defd(num,使用_yield=True):
返回和(除数(num,使用_收益率))
def除数(num,use_yield=True):
如果使用产量:
对于范围(1,num//2+1)内的x:
如果num%x==0:
产量x
其他:
结果=(如果num%x==0,则x代表范围(1,num//2+1)中的x)
对于结果中的x:
产量x
印刷品(d(220))
打印(d(220,使用产量=假))
输出
284
284
请修复您的缩进!如果if永远不为真,除数()会返回什么?divisior
返回一个int
,而不是int
s的可数。@barnydivisior
将始终返回1,因为x%1==0
始终为真。
def d(num):
return sum(divisor(num))
def divisor(num):
sumo = 0
for x in range(1,num//2+1):
if num%x==0:
print(x)
return x
#return(x for x in range(1,num//2+1) if num%x ==0 )
print(d(220))