Python 将序列求和为';n';

Python 将序列求和为';n';,python,series,Python,Series,只是尝试对给定的n对序列进行求和1/(1+3n)。我使用了下面的代码,得到了一条“无效语法”消息,但我不明白为什么其他示例也会这样做。返回四舍五入到小数点后两位的值 def series_sum(n): ans = 0 for i in range(0, n+1): ans = ans + (1/(1+3i)) return round(ans, 2) 只要做: def series_sum(n): ans = 0 for i in ra

只是尝试对给定的
n
对序列进行求和
1/(1+3n)
。我使用了下面的代码,得到了一条
“无效语法”
消息,但我不明白为什么其他示例也会这样做。返回四舍五入到小数点后两位的值

def series_sum(n):
    ans = 0
    for i in range(0, n+1):
        ans = ans + (1/(1+3i))
    return round(ans, 2)
只要做:

def series_sum(n):
    ans = 0
    for i in range(0, n+1):
        ans = ans + (1.0/(1.0+3.0*i))
    return round(ans, 2)
您应该使用
*
进行乘法运算,并在等式中使用float将结果作为float


缩进在python中也非常重要。

这里是代码的一个识别更正版本,显示了错误

$ cat d.py 
def series_sum(n):
    ans = 0
    for i in range(0, n+1):
        ans = ans + (1/(1+3i))
    return round(ans, 2)

$ pyflakes d.py
d.py:4:28: invalid syntax
        ans = ans + (1/(1+3i))
                           ^        
下面是如何修复它

def series_sum(n):
    ans = 0
    for i in range(0, n+1):
        ans = ans + (1/(1+3*i))
    return round(ans, 2)
写入“3i”对于“3乘以i”是无效的语法,因此请使用
*
运算符进行乘法

$ python
Python 3.5.3 (default, Jun 22 2017, 11:09:36) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from d import series_sum
>>> series_sum(2)
1.39

你有没有收到带有那个错误的行号?此外,此处的缩进是否与您自己的代码中的缩进完全相同?
1+3i
是无效语法。空格在编程中很重要(与数学不同)。使用
(1+3*i)
。不解释更改了什么以及为什么更改?至少在Python3中,添加浮动是不必要的。因为单斜杠表示不截断除法。抱歉。缩进操作正确,所有操作都反映了上述解决方案。需要乘法符号,但计算不正确。当n=2时,我得到的是1.00,而不是1.25