使用基数为10的int()输入无效文字时出错:' 1 2 3'

时间:2018-06-16 07:27:19

标签: python-3.x input

df = pd.DataFrame.from_dict(res)
writer = pd.ExcelWriter('output.xlsx')
df.to_excel(writer, 'Sheet1', index_label=cl)
writer.save()

错误消息

def kad(l):
    max_c=max_g=l[0]
    for i in range(0,len(l)):
        max_c=max(l[i],l[i]+max_c)

        if(max_c>max_g):

            max_g=max_c

    print(max_c)
    return max_g

t=int(input("test case")) ## TEST CASES
for k in range (0,t):
    n=int(input(" num"))    # TOTAL NUMBERS IN EACH TEST CASE
    l=[float(int(input())) for i in range(0,n)]
    if(len(l)>0):
        kad(l)

    print(l) 

即使代码在本地编辑器(Jupyter笔记本)中工作正常,但在在线编辑器中显示错误。

1 个答案:

答案 0 :(得分:0)

不知道你的函数试图做什么 - 对于空列表它会给出一个错误(你要防范),只有正输入它是一种对所有数字进行求和的复杂方式,将第一个值加两次。

对于某些hackerrank' isc网站来说,它看起来像是一个错误的解决方案。

您应该像这样修改输入:

for _ in range(int(input("test case"))): ## TEST CASES
    _ = input() # TOTAL NUMBERS IN EACH TEST CASE
    # the number of numbers does not matter - you get it as len(l) if needed
    l = list(map(float,input().strip().split())) # split the input and parse it to floats
               #  ^^^ change to int if you only handle int's - your error suggest so
    if(len(l)>0):
        kad(l)