Python 如何将f(k)插入到一个系列中?

Python 如何将f(k)插入到一个系列中?,python,Python,假设你有f(x)=x^2,你想要一个从k=1到n的系列。如何在python中输入并打印结果? 我试着这样做了n=10 n=10 def f(x): return x^2 sum = 0 for k in range(1, n): Sum = sum + f(k) 我不知道如何打印,更不用说我是否打印正确了 我知道可以将k^2的和表示为n(n+1)(2n+1)/6,但我只是以x^2为例。首先sum是一个内置函数,因此您不应该将其用作变量名,因为python只会让您本着

假设你有f(x)=x^2,你想要一个从k=1到n的系列。如何在python中输入并打印结果? 我试着这样做了n=10

n=10

def f(x):

  return x^2
  sum = 0

  for k in range(1, n):

    Sum = sum + f(k)
我不知道如何打印,更不用说我是否打印正确了


我知道可以将k^2的和表示为n(n+1)(2n+1)/6,但我只是以x^2为例。

首先
sum
是一个内置函数,因此您不应该将其用作变量名,因为python只会让您本着“我们都是同意的成年人”的精神覆盖变量。范例

  • 使用内置的
    map
    函数在以下范围内应用使用
    def
    lambda
    定义的函数:

    n = 5
    def f(x):
        return x*x
    
    print([ f(i) for i in range(n)])
    # [0, 1, 4, 9, 16]
    print(sum([ f(i) for i in range(n)]))
    # 30
    
    n = 10
    f = lambda x: x*x
    print(map(f, range(n)))
    # [0, 1, 4, 9, 16]
    # one line equivalent : print(map(lambda x: x*x, range(n)))
    print(sum(map(f, range(n))))
    # 30
    
  • 或者,您可以按照自己的思路,使用简单的循环和变量:

    n = 5
    f = lambda x: x*x
    s = 0
    
    for i in range(n):
        s += f(i)
    
    print(s)
    # 30
    

    最后,如果速度/效率是您必须考虑的因素,您可以查看
    numpy
    库。例如,请参见我的一篇关于在一个范围内应用函数的文章。

    我来这里是为了这个标题。
    n = 5
    f = lambda x: x*x
    s = 0
    
    for i in range(n):
        s += f(i)
    
    print(s)
    # 30