我想做一个函数来找到数组中的最大值

I want make a function which will find the max value in array

def max(list):
    max_element = list[0]

    for i in range(1, len(list)):
        if list[i] > max_element:
            max_element = list[i]


print(max_element)

print(max([1, 2, 8, 4]))

#NameError: name 'max_element' is not defined

如何解决?

您的代码应如下所示:

def max(list):
    max_element = list[0]

    for i in range(1, len(list)):
        if list[i] > max_element:
            max_element = list[i]
    return max_element


print(max([1, 2, 8, 4]))

首先,不要覆盖 python 的全局变量。 Python 默认提供 max 函数。

def max_number(list):
    max_element = list[0]

    for i in range(1, len(list)):
        if list[i] > max_element:
            max_element = list[i]
    return max_element

print(max_number([1, 2, 8, 4]))

您不能只使用不在您范围内的变量,max_element 变量仅在您的 max_element 函数范围内可用,要实际检索值,您需要 return它。

'max_element' 是函数范围内的变量,因此当您尝试在函数外部打印它时,您的计算机不知道它是什么。 您希望在循环完成后打印内部函数,以便在 运行.

时打印
def max(list):
  max_element = list[0]
  for i in range(1, len(list)):
    if list[i] > max_element:
      max_element = list[i]
  print(max_element)   

max([1, 2, 8, 4])