【问题标题】:Python for in range()Python for in range()
【发布时间】:2023-03-20 17:06:02
【问题描述】:

我正在使用 Python 做一个项目,我需要计算平方和,第一部分是:

"函数 squares(initial,terms) 有两个参数:初始 系列中的整数和系列中的项数。它 将使用重复来计算系列的总和,然后返回 结果。例如,如果第一个参数是 2 而第二个 参数为 4,函数将返回 54。 Sum = 2^2 + 3^2 + 4^2 + 5^2 = 54"

在它说要使用的问题的提示中:

for in range()

我只是不知道如何在 python 中使用这个函数以及如何实现它。

【问题讨论】:

  • 你应该让你的问题比这更具可读性。转储单个段落会导致可读性差。把它分解成逻辑块。
  • Sum = 22 + 32 + 42 + 52 = 54 是如何工作的?你能详细说明并添加一些你已经完成的代码吗
  • 我猜是 2 ** 2 + 3 ** 3 + 4 ** 4 + 5 ** 5 = 54 ??
  • 请花点时间阅读how to ask 上的常见问题解答并改进您的问题。
  • 是的,对不起,我昨晚很晚才发布了这个,它是这些数字的平方,还包括那段,因为它比我能更好地解释问题。

标签: python function python-3.x spyder


【解决方案1】:
sum([i ** 2 for i in range(initial, initial + terms)])

sum(map(lambda x: x ** 2, range(initial, initial + terms)))

两者的工作方式相同。

【讨论】:

  • 我完美地使用了这种方法来获得答案,我是否可以拉出每个平方的值,以便我可以按上面显示的格式打印答案?即“总和 = 2^2 + 3^2 + 4^2 + 5^2 = 54”
  • 抱歉回复晚了。如果您删除总和,那么您可以获得数字列表。您可以将其用于任务。
【解决方案2】:

您可以将范围映射为平方形式,然后求和。

首先,你的范围应该是这样的

l = range(initial,initial+terms)

然后,您可以使用函数映射此范围(我更喜欢使用 lambda 表达式)

m = map(lambda x: x**2, l)

最后,你可以得到这个结果的总和。

sum(m)

【讨论】:

  • 没有看到您的答案,所以我的解决方案之一与您的类似。抱歉,不是故意的。
  • @Harry 这是一个直截了当的问题,没想到会有很大的不同:)
【解决方案3】:

我认为你所追求的是类似的东西

def sumSquares(a,b):
    sum = 0
    for n in range(a,a+b):
        sum += n*n
    return sum

编辑:误解了问题,因为第二个参数是限制。固定。

【讨论】:

  • sumSquares(2,4) 给出2*2 + 3*3 + 4*4 + 5*5 这是同一件事
  • 删除了我的傻瓜:p。对不起愚蠢。没看错。
  • 是的,我想就是这样。不用担心。
【解决方案4】:
def squaresum(a,b):
    _sum = 0 # underline because sum is a function already
    for x in range(a,b):
        _sum += a**x
    return _sum

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多