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

Python自定义四舍五入函数my_round()出现NoneType索引错误求排查

报错原因排查

核心根源

报错确实是indexer1存在None的可能性导致的,具体可以拆解为以下3个问题:

  • index_decider函数没有覆盖全返回场景:只有当传入的listA中存在.字符时才会返回int类型的索引值,若列表中没有小数点,函数执行完成后没有显式return,默认返回None。
  • my_round中的调用逻辑错误:你在逐字符把num1的内容追加到listA的循环中,每次追加后就立即调用index_decider,在小数点还没被追加到listA的前几次调用中,index_decider都会返回None,直接用None作为列表下标就会触发你遇到的报错。
  • 隐藏的类型错误未被触发:就算indexer1拿到了正确的整数索引,num1是输入字符串转换来的列表,内部元素都是字符串类型,直接执行num1[indexer1] + 1会触发字符串与整数相加的类型错误。

修复建议

  • 调整index_decider的调用时机:等listA组装完完整的输入数字字符后,再调用一次index_decider计算目标索引,不要放在追加字符的循环内重复调用。
  • 补充index_decider的边界逻辑:如果输入的待处理数字是没有小数点的整数,补充对应返回逻辑,或者增加输入校验抛出明确的错误提示。
  • 调整数值计算逻辑:从num1中取到对应位置的字符后,先转成int类型再执行加减运算,示例修改如下:
    plus = int(num1[indexer1]) + 1
    minus = int(num1[indexer1]) - 1
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:15:05