【问题标题】:My code is not working ?python 3我的代码不工作?python 3
【发布时间】:2018-08-11 12:08:24
【问题描述】:
n=int(input())
c={}
for i in range(n):
    name=str(input())
    c[name]=list(input().split())
print(c)
query=input()
query_scores=c[query]
print(sum(query_scores))

sum 功能不起作用。它显示:

TypeError: +: 'int' 和 'str' 的操作数类型不受支持

【问题讨论】:

标签: python python-3.x


【解决方案1】:

您必须将列表项转换为任何数字类型。 split 函数返回字符串类型,你在 str 类型中进行求和

c[name]=list(input().split())

可以改成

c[name] = [ int(i) for i in input().split()]

【讨论】:

    【解决方案2】:

    来自sum的描述:

    从左到右求和并返回 总数。 start 默认为 0。iterable 的项目通常是 数字,起始值不能是字符串。

    由于总和开始为 0(默认情况下),因此您需要将要求和的元素转换为可以添加到 0 的元素。字符串不能。你需要做这样的事情:

    print(sum(int(x) for x in query_scores))
    

    或者,如果你想使用浮点数,

    print(sum(float(x) for x in query_scores))
    

    【讨论】:

    • 不鼓励提出不好的问题
    • 我理解您评论的第一部分,对此我深表歉意(如果这样更好,我会删除答案),但是我的答案怎么没有解决这个问题?
    • 抱歉,没有读够。它确实解决了这个问题。 -1 到 +0 但仍然请不要回答不好的问题。 Q 已经在你发帖前 4 分钟的评论中得到了回答,但我猜你当时已经在写下你的答案并对其进行编辑,所以你没有看到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多