变量不正确地重新定义为循环(Python)的

问题描述 投票:-1回答:1

我需要创建正确计算EM为EM = 1的功能 - MEM-1 我在弄清楚为什么我的变量没有返回正确的值的一些问题。这里是我解决这一问题的总结 写的函数称为积分该作为输入的整数m和,使用下面描述的算法,返回E_m的值。请确保你指数这一正确的,即E0 = 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,所以我不知道这是否是在重新定义或不具有变量名称的问题。

python numpy for-loop
1个回答
1
投票

Python的循环从0开始的和非包容性。尝试range(1, m+1)

© www.soinside.com 2019 - 2024. All rights reserved.