You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现first_neg函数用while循环查找列表第一个负数的下标

Python first_neg函数报错问题排查与修正

报错原因

你遇到的TypeError: object of type 'function' has no len()报错,核心原因是代码中混淆了函数名和传入的列表参数,除此之外还有多个逻辑和语法问题:

  • 缩进错误:函数体内容i = 0及后续代码没有缩进,不符合Python语法规则
  • 循环条件错误:len(first_neg)中的first_neg是函数本身,不是你要处理的输入列表,你应该计算传入参数a的长度,改为len(a)
  • 元素访问错误:first_neg[i]同样是误用函数名,应该改为访问输入列表的元素a[i]
  • 返回值错误:题目要求返回第一个负数的下标,但你写的return a[i]返回的是负数本身,应该改为return i
  • 缺省返回值逻辑:遍历完列表没有找到负数时,需要显式返回None符合测试用例要求

修正后的代码

def first_neg(a):
    i = 0
    while i < len(a):
        if a[i] < 0:
            return i
        i += 1
    # 遍历完未找到负数
    return None

# Testcases
print(first_neg([2, 3, -1, 4, -2])) # 输出 2
print(first_neg([2, 3, 1, 4, 2]))   # 输出 None
print(first_neg([]))                # 输出 None

运行验证

修正后运行测试用例,输出结果和预期完全一致。

内容的提问来源于stack exchange,提问作者raneem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:45:03