抱歉,这是一个愚蠢的问题。解决方案对于使用全局变量是正确的,但我的代码还有其他问题。
这是代码的片段。我正在研究6.00x麻省理工学院课程中的问题3 /问题集2。
paymentFound = False
while paymentFound == False:
global paymentFound
testMid = findMid(newMin, newMax)
testStatus = testPayment(testMid)
if testStatus == "done":
paymentFound = True
print "Lowest Payment: ",testMid
elif testStatus == "high":
newMax = testMid
elif testStatus == "low":
newMin = testMid
这是我得到的错误: pset1.3.py:32:SyntaxWarning:在全局声明之前将名称'paymentFound'分配给它 全球支付发现
我读到某个地方,如果它们对'for'循环很重要,你不能使用全局变量,但我不知道这在while循环中是否很重要。
有关我为什么会收到此错误的想法?
抱歉,不得不重新编写代码,使其看起来更具代表性。
答案 0 :(得分:3)
错误消息描述了错误:您的“全局”命令为时已晚。试试这个:
global paymentFound
paymentFound = False
while paymentFound == False:
testMid = findMid(newMin, newMax)
...
答案 1 :(得分:0)
你应该像这样“全局化”它:
global paymentFound
paymentFound = False
while ~:
yourcode
我之前遇到过这个问题。
我尝试了这些代码并且确实有效:
global a
a = 1
while a :
if True:
a = 0
print('is it?')