首页 > 解决方案 > Python中具有指数(N和P)的数字总和

问题描述

我需要制作一个要求输入两个数字的 Python 程序。N 是第一个数字,P 是第二个数字,程序必须计算前 N 个数字的总和,其值为 P,遵循以下公式:1^P + 2^P + 3^P + 4^P... + N^P

例如,如果我输入 3 和 5,它将执行以下计算:1^5 + 2^5 + 3^5 = 276

这是我目前拥有的:


num1 = input('Enter first number: ')
num2 = input('Enter second number: ')
sum = float(num1) ** float(num2)
print('{0} raised to the power of {1} is {2}'.format(num1, num2, sum))

问题是我不知道如何让程序计算,如果我输入的第一个数字是 3,第二个是 5,则执行 1 ^ 5 + 2 ^ 5 + 3 ^ 5,而不是仅执行 3 ^ 5 (就像我的程序一样)。有人能帮我吗?非常感谢!

标签: pythonmathformula

解决方案


总结列表理解可能会奏效:

p = 5
n = 3
sum((i+1) ** p for i in range(n)) # 276

(i+1) ** p for i in range(n)是一个生成器表达式,为 [0, n-1] 中的每个 i 产生 (i+1)^p。调用sum它会返回这些项的总和。


推荐阅读