0

私は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, 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)
4

2 に答える 2

3

Loop()定義する前に関数を呼び出しています。

于 2012-06-26T23:08:20.823 に答える
0

まず、整理する必要があります。

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
于 2012-07-11T16:10:20.383 に答える