Python &引用;类型错误:'&燃气轮机';在';int';和';str'&引用;最大值

Python &引用;类型错误:'&燃气轮机';在';int';和';str'&引用;最大值,python,python-3.x,Python,Python 3.x,当我尝试使用以下输入执行代码时 M = input("") M = M.split(" ") X = input("") X = X.split(" ") sum1 = 0 K = int(M[1]) while(K!=0): L = max(X) sum1 = sum1+int(L) X[X.index(max(X))] = int(max(X)) - 1 K = K-1 print(sum1) 我得到了下面的错误 3 4 1 2 4 回溯(最近一次呼叫

当我尝试使用以下输入执行代码时

M = input("")
M = M.split(" ")
X = input("")
X = X.split(" ")
sum1 = 0
K = int(M[1])
while(K!=0):
    L = max(X)
    sum1 = sum1+int(L)
    X[X.index(max(X))] = int(max(X)) - 1
    K = K-1
print(sum1)
我得到了下面的错误

3 4  
1 2 4
回溯(最近一次呼叫最后一次):
文件“fg.py”,第9行,在
L=最大值(X)
TypeError:“int”和“str”实例之间不支持“>”
我不明白当我从文件执行此操作时,为什么会出现错误。我在终点站一行一行地尝试了同样的方法,效果很好。请帮我解决这个问题,以下是解决方案:

您从用户处接受的输入值为
字符串
格式。您需要将其转换为
int

修改
M=M.split(“”)和
X=X.split(“”)如下所示:

Traceback (most recent call last):
  File "fg.py", line 9, in <module>
    L = max(X)
TypeError: '>' not supported between instances of 'int' and 'str'
答复


这是一个修复,但问题从第二次迭代开始。在字符串列表中查找“max”是没有问题的(在本例中,它将是字典形式的max),但在第二次迭代中,X同时包含字符串和一个整数,即max在OPs代码中失败时

我知道这是可行的,先生。首先,让我知道为什么在执行文件时会出现错误,而不是在终端中,并且int的目的也是通过使用int(L)来实现的。这是一个修复,但问题从第二次迭代开始。在字符串列表中查找“max”是没有问题的(在本例中,它将是字典形式的max),但在第二次迭代中,
X
同时包含字符串和一个整数,也就是说,当OPs code中的
max
失败时,您将查找
max(X)
,这将给出错误。下一行是
int(L)
,您可能正在终端中使用Python 2。在Python2中,允许将
int
str
进行比较。在Python3中,这是不允许的,因为该比较的结果完全是任意的,在任何上下文中几乎都没有用处(任何字符串总是“大于”任何整数)
M = input("")
M = [int(i) for i in M.split(" ")]
X = input("")
X = [int(i) for i in X.split(" ")]
sum1 = 0
K = int(M[1])
while(K!=0):
    L = max(X)
    sum1 = sum1+int(L)
    X[X.index(max(X))] = int(max(X)) - 1
    K = K-1
print(sum1)