python - 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 (就像我的程序一样)。有人能帮我吗?非常感谢!
解决方案
总结列表理解可能会奏效:
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
它会返回这些项的总和。
推荐阅读
- logging - 如何在 Play 框架中为不同环境定义多个 logback 配置?
- go - 在哪里存储测试(项目结构 - 最佳实践)?
- php - 如何使用 +1 更新数据库
- html - 如何在闪亮的另一个 CSS 元素下居中
- flutter - 如何从 Flutter Web 的 HtmlElementView 执行 iframe 功能
- python - 如何在海龟重复中更改颜色
- angular - Angular - ErrorHandler 与 HttpInterceptor
- javascript - JS 如何创建图像并立即将其置于开始和结束样式之间的过渡?
- c++ - 当另一个函数已经在运行时运行一个函数
- javascript - 如何验证文本输入作为电子邮件地址 - Jquery