Python 未定义变量循环
我是Python新手。 我得到一个错误,上面写着“未定义变量”。我想不出来。 代码中的语句如下所示:Python 未定义变量循环,python,Python,我是Python新手。 我得到一个错误,上面写着“未定义变量”。我想不出来。 代码中的语句如下所示: Classroom1 = Classroom(FirstCourseStartTime = 8, LastCourseEndTime = 7.75) m_count = 0 h_count = 0 t_count = 0 l_count = 0 loopsize = 10000 Loop(Classroom1, m_count, h_count, t_count, l_count, loops
Classroom1 = Classroom(FirstCourseStartTime = 8, LastCourseEndTime = 7.75)
m_count = 0
h_count = 0
t_count = 0
l_count = 0
loopsize = 10000
Loop(Classroom1, m_count, h_count, t_count, l_count, loopsize)
def Loop(Classroom1, m_count, h_count, t_count, l_count, loopsize):
for i in range(0, loopsize):
Mutated = Classroom()
Mutated = Classroom1.CopyOfClassroom(Mutated)
Mutated.Mutate()
HardConstraintClassroomMet = Classroom1.ComputeHardConstraint()
HardConstraintMutatedMet = Mutated.ComputeHardConstraint()
if HardConstraintClassroomMet == False and HardConstraintMutatedMet == False:
h_count + 1
t_count + 1
Classroom1.Mutate()
continue
if Mutated.FitnessValue() > Classroom1.FitnessValue():
m_count + 1
t_count + 1
Classroom1 = Mutated
if Classroom1.ComputeHardConstraint() == False:
l_count + 1
temp = l_count*loopsize
print "Unable to meet hard consraints in %d" % temp
Loop(Classroom1, m_count, h_count, t_count, l_count, loopsize)
在定义函数之前,您正在调用
Loop()
函数。在定义函数之前,您正在调用Loop()
函数。首先,您必须组织:
class classroom,
def loop
在函数循环内,以全局形式写入:
global m_count
global h_count
global t_count
最后更改if语句:
if HardConstraintClassroomMet == False and HardConstraintMutatedMet == False:
h_count = h_count + 1
t_count = t_count + 1
首先,你必须组织:
class classroom,
def loop
在函数循环内,以全局形式写入:
global m_count
global h_count
global t_count
最后更改if语句:
if HardConstraintClassroomMet == False and HardConstraintMutatedMet == False:
h_count = h_count + 1
t_count = t_count + 1
我认为,您在定义函数“Loop”之前调用了它。也许这意味着Python告诉您的变量是未定义的(您忽略了告诉我们),可能是未定义的?Python还将告诉您它试图使用未定义变量的行;也许早于这一行定义它会有所帮助。甚至值得在该行上方添加一个伪定义,例如
Loop=0
,并查看是否至少得到了不同的错误。我认为,您在定义函数“Loop”之前调用了它。也许这意味着Python告诉您的变量未定义(您忽略了告诉我们),可能未定义?Python还将告诉您它试图使用未定义变量的行;也许早于这一行定义它会有所帮助。甚至值得在该行上方添加一个虚拟定义,例如Loop=0
,并查看您是否至少得到了一个不同的错误。此外,教室在哪里?除此之外,您似乎在Loop
函数上无限和指数地重复出现(假设def循环
行之后的所有代码行都应该缩进一行)。看起来缩进已经修复,您确实在调用无限递归。此外,教室类在哪里?除此之外,您似乎在循环
函数上无限和指数地重复出现(假设def循环
行之后的所有代码行都应该缩进一行)。看起来缩进已经修复,您确实在调用无限递归。