[英]How to fix “global name is not defined” in my code
我在函数中给出一个列表,该列表接受数字并尽可能多地添加,以便返回可能较小或什至极限的较高总和
maxsum=0
def maxDistance(lista,limit):
global maxsum
lista.sort(reverse=True)
for i in range(len(lista)):
global mega
mega[i]=0
for i in range(len(lista)):
if lista[i]<=limit:
for j in range(len(lista)):
if i!=j:
mega[i]=mega[i]+lista[j]
if mega[i]>limit:
mega[i]=mega[i]-lista[j]
maxsum=max(mega)
return maxsum
print ("Εισαγετε μια λιστα απο αποστασεις και υστερα αφου την καταχωρησετε ,καταχωρηστε εναν αριθμο ως οριο αθροισματος των προηγουμενων αποστασεων. Χωριστε τους αριθμους με κενα. ","\n")
lista=[float(x) for x in input("dose lista: ").split()]
limit=float(input("dose orio: "))
maxDistance(lista,limit)
print (maxsum)
input("press enter to continue")
您需要在使用global
关键字之前声明变量mega
。 我建议:
mega = []
maxSum = 0
def foo():
global mega
global maxSum
...
正如mad_在评论中提到的那样:在您的情况下,如果您不更改变量值,则实际上实际上并不需要global
关键字。 在函数之前声明它们之后,您可以直接引用它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.