到目前为止,这是我的代码行,
def Adder (i,j,k):
if i<=j:
for x in range (i, j+1):
print(x**k)
else:
print (0)
它应该做的是得到输入(i,j,k),这样i,j之间的每个数字都乘以k的幂。例如,Adder(3,6,2)将是3^2 + 4^2 + 5^2 + 6^2,最终输出86。我知道如何让函数输出i和j之间的数字列表的K次方,但我不知道如何使它使函数对输出求和。因此,在我的给定示例中,我的输出将是9,16,25,36。
有没有可能,在我的if条件下,我可以生成一个输出,在K的幂之后,将范围内的数字相加?
如果有人能给我一些建议,我将不胜感激!任何编码的第一周,我都不太知道如何问这个问题,非常抱歉我的含糊其辞!
现在问题得到了回答,感谢所有反应如此迅速的人!
发布于 2018-08-14 08:55:33
您可以使用内置函数sum()
def adder(i,j,k):
if i <= j:
print(sum(x**k for x in range(i,j+1)))
else:
print(0)
文档为here
发布于 2018-08-14 08:51:53
我不确定这是不是你想要的
if i<=j:
sum = 0
for x in range (i, j+1):
sum = sum + x**k #sum += x**k for simplicity
这会给你力量的总和
发布于 2018-08-14 08:55:41
好吧,不要使用打印。像这样修改你的函数很容易,
if i<=j:
s = 0
for x in range (i, j+1):
s += x**k
return s # print(s) if you really want to
else:
return 0
通常,函数不打印任何内容。相反,它们返回调用者的值以进行打印或进一步处理。例如,有人可能想要查找Adder(3, 6, 2)+1
的值,但如果您不返回任何内容,他们就无法做到这一点,因为结果不会传递给程序。附注:不要将函数大写。这些是用来上课的。
https://stackoverflow.com/questions/51832310
复制相似问题