在循环中访问全局变量时遇到问题
抱歉,这个问题有点傻。虽然大家给出的解决方案是正确的,适用于全局变量,但我的代码还有其他问题。
这是我代码的一部分。我正在做的是麻省理工学院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: 语法警告:在全局声明之前给'paymentFound'赋值 global paymentFound
我看到过有人说,如果全局变量在'for'循环中很重要,就不能使用,但我不确定在'while'循环中是否也一样。
有没有人能告诉我为什么会出现这个错误?
抱歉,我不得不重新编辑代码,让它看起来更整洁。
2 个回答
0
你应该把它放到循环外面,像这样:
global paymentFound
paymentFound = False
while ~:
yourcode
我之前也遇到过这个问题。
我试过这些代码,确实有效:
global a
a = 1
while a :
if True:
a = 0
print('is it?')
3
这个错误是由错误信息描述的:你的“全局”命令太晚了。试试这个:
global paymentFound
paymentFound = False
while paymentFound == False:
testMid = findMid(newMin, newMax)
...