Python 代码与前几行相同,但给出了一个错误?

Python 代码与前几行相同,但给出了一个错误?,python,function,random-walk,Python,Function,Random Walk,我一直在 TypeError:“int”对象不可下标 在我的函数中。如果我注释掉函数,Equal()和gauss()可以很好地工作,我所做的只是从它们那里复制代码,并使用我的stepe()函数而不是step()或stepn() 将numpy导入为np 将matplotlib.pyplot作为plt导入 从numpy.random导入rand、seed、randn 步骤=1 步行=10000 步行=np.零(步数+1) 定义步骤(): 如果rand()小于0.5: 返回1.0 返回-1.0 def

我一直在

TypeError:“int”对象不可下标

在我的函数中。如果我注释掉函数,Equal()和gauss()可以很好地工作,我所做的只是从它们那里复制代码,并使用我的stepe()函数而不是step()或stepn()

将numpy导入为np
将matplotlib.pyplot作为plt导入
从numpy.random导入rand、seed、randn
步骤=1
步行=10000
步行=np.零(步数+1)
定义步骤():
如果rand()小于0.5:
返回1.0
返回-1.0
def stepn():
返回randn()+0.5
def stepe():
返回值(6*(rand()-0.5))
def Equal(步行、台阶):
l=[]
对于范围内的w(行走):
对于范围内的s(步):
走[s+1]=走[s]+步()
l、 附加(行走[步数])
返回l
def高斯(行走、步数):
l=[]
对于范围内的w(行走):
对于范围内的s(步):
步行[s+1]=步行[s]+stepn()
l、 附加(行走[步数])
返回l
def均匀(步行、步数):
l=[]
对于范围内的w(行走):
对于范围内的s(步):
步行[s+1]=步行[s]+stepn()
l、 附加(行走[步数])
返回l
plt.图(figsize=(10,7))
plt.hist(相等(步道、台阶),箱子=15)
plt.show()
plt.hist(高斯(步行、台阶),箱柜=15)
plt.show()
plt.hist(平均(步行、台阶),垃圾箱=15)
plt.show()

这里的参数
walk
(而不是
walks
)屏蔽了具有相同名称的外部变量,并为后续语句
walk[s+1]=walk[s]+stepn()定义。我想应该是
walks

你能发布完整的堆栈跟踪吗?你是说
range(len(walk))
而不是
range(walk)
?您在外部
for
循环中也有一个输入错误,您在该循环中编写
行走
,而不是
行走
import numpy as np
import matplotlib.pyplot as plt
from numpy.random import rand,seed,randn

steps = 1
walks = 10000

walk = np.zeros(steps + 1)

def step():
    if rand() < 0.5:
        return 1.0
    return -1.0

def stepn():
    return randn() + 0.5

def stepe():
    return (6*(rand()-0.5))

def equall(walks,steps):
    l = []
    for w in range(walks):
        for s in range(steps):
            walk[s+1] = walk[s] + step()
        l.append(walk[steps])
    return l

def gauss(walks,steps):
    l = []
    for w in range(walks):
        for s in range(steps):
            walk[s+1] = walk[s] + stepn()
        l.append(walk[steps])
    return l

def evenly(walk,steps):
    l = []
    for w in range(walks):
        for s in range(steps):
            walk[s+1] = walk[s] + stepn()
        l.append(walk[steps])
    return l

plt.figure(figsize=(10,7))
plt.hist(equall(walks,steps),bins=15)
plt.show()
plt.hist(gauss(walks,steps),bins=15)
plt.show()
plt.hist(evenly(walks,steps),bins=15)
plt.show()
def evenly(walk,steps):