变量未在for循环中正确重新定义(Python)

时间:2019-02-05 20:52:38

标签: python numpy for-loop

我需要创建一个函数来正确计算E m 为E m = 1-mE m-1

我在弄清楚为什么我的变量未返回正确值时遇到了一些问题。这是我要解决的问题的摘要

编写一个称为积分的函数,该函数将整数m作为输入,并且 使用下面描述的算法,返回E_m的值。确保正确索引此索引,即E 0 = 1-1 / e 不是E1 = 1 − 1 / e。如果尝试将其作为索引数组来执行操作,请务必谨慎使用Python进行索引。

Set E = 1 - 1/e
    for j = 1, ... , m do
        E = 1 - j*E
    end for
    return E

这是我的代码

import numpy as np
def integration(m):
  E_m = 1 - 1/np.e
  for j in range(m):
    E_m = 1 - j*E_m
  return E_m

我的代码if m > 0返回错误的答案(例如,integration(1)返回1,应为1 - 1*(1-1/e))。文本似乎表明我应该使用数组,但是我不明白为什么需要这样做。 为什么我的代码不能正确地重新定义变量E_m?我是Python的新手,所以我不确定在重新定义变量名时是否存在问题。

1 个答案:

答案 0 :(得分:1)

Python循环以0开头,并且不包含在内。尝试range(1, m+1)

相关问题