如何修复我的cod中的“未定义全局名称”

2024-05-17 12:43:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我在函数中给出了一个列表,它取尽可能多的数并相加,以返回可能高的和,这个和更小,甚至达到极限

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")

Tags: inforinputlenifrangefloatglobal
1条回答
网友
1楼 · 发布于 2024-05-17 12:43:25

在使用global关键字之前,需要声明变量mega。 我建议:

mega = []
maxSum = 0
def foo():
    global mega
    global maxSum
    ...

正如评论中提到的:在您的例子中,如果您不改变变量值,那么实际上您并不需要global关键字。在函数之前声明它们之后,可以直接引用它们。你知道吗

相关问题 更多 >