【问题标题】:Trying to add numbers with a function尝试使用函数添加数字
【发布时间】:2021-04-21 10:29:33
【问题描述】:
def listsum(numList):
    if len(numList) == 1:
        print(numList[0])
    else:
         print(numList[0]+listsum(numList[1:]))
    
if __name__ == '__main__':
    lit1=[1, 2,  3, 4, 5]
    listsum(lit1)
    

我需要有关此代码的帮助,我得到了:

TypeError:+ 的不支持的操作数类型:“int”和“NoneType”。

我正在尝试将所有电子号码添加到列表中

【问题讨论】:

  • TypeError: unsupported operand type(s) for +: 'int' and 'NoneType' 表示您正在尝试执行+ 的操作,并且整数和整数之间不支持此操作无。那应该为您指明正确的方向。找到您正在执行+ 的代码部分,并找出为什么该操作的左侧或右侧(它是右侧)中的一个会产生无。下面的 Mureinik 提供了问题的答案(您的函数没有返回)
  • 看看你能不能弄清楚错误的意思。它说您要添加的其中一件事是int,另一件事是None。这两个中的哪一个是None?这是为什么?你能解决这个问题吗?

标签: python list function


【解决方案1】:

您应该只返回它,而不是打印总和,并将打印留给调用者:

def listsum(numList):
    if len(numList) == 1:
        return numList[0]
    else:
         return numList[0] + listsum(numList[1:])
    
if __name__ == '__main__':
    lit1=[1, 2,  3, 4, 5]
    print(listsum(lit1))

【讨论】:

    猜你喜欢
    • 2021-05-09
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 2023-01-01
    • 1970-01-01
    • 2023-03-05
    • 2023-03-09
    相关资源
    最近更新 更多