为什么传入空数组时该Python函数没有返回None且无输出?
问题原因分析
你的代码无法得到预期输出、甚至终端无内容是以下几个问题共同导致的:
- 函数入口第一行你写了
Array = [],直接把传入的参数覆盖成了空数组,不管外部传什么内容进来,都会触发后续的空数组判断直接return None,所有计算逻辑完全不会执行 - 如果你调用函数后没有加
print()打印返回值,不管函数返回了什么内容,终端都不会有任何输出 - 代码存在变量名错误:循环中赋值
largest = A[x],你的参数名是Array,根本没有定义过A变量,就算前面的覆盖问题修复,运行也会直接抛NameError - 初始最大值设为0逻辑错误:如果传入的数组全是负数,计算结果会完全错误
- 遍历逻辑冗余:每次循环都用
index()找索引、重复给B赋值的写法效率低,遇到重复元素时还会拿到错误的索引
修正后的代码
def Largest(Array): # 判断空数组直接返回None if not Array: return None # 初始化最大值为第一个元素、索引为0 largest = Array[0] max_index = 0 for i in range(len(Array)): if Array[i] > largest: largest = Array[i] max_index = i return [largest, max_index] # 调用时必须用print打印才能在终端看到输出 print(Largest([1,3,5,2,4]))
内容的提问来源于stack exchange,提问作者Dran Kisnosx
相关产品推荐
相关产品推荐

