我在函数中给出了一个列表,该列表采用数字并尽可能多地相加,以便返回可能更大或更小的最大值
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")
答案 0 :(得分:0)
在使用mega
关键字之前,需要声明变量global
。
我建议:
mega = []
maxSum = 0
def foo():
global mega
global maxSum
...
正如mad_在评论中提到的那样:在您的情况下,如果您不更改变量值,则实际上实际上并不需要global
关键字。在函数之前声明它们之后,您可以直接引用它们。