Python ValueError用于计算正确结果的代码

时间:2018-11-24 07:11:34

标签: python valueerror

问题陈述

给出一个整数n,找到两个整数a和b,这样,

#a >= 0 and b >= 0
#a + b = n
#DigitSum(a) + Digitsum(b) is maximum of all possibilities

def solve(n): 

    len_of_n = len(str(n))
    len_of_n-=1
    a = '9'
    a = (a*len_of_n)
    #print(a)
    b = (int(n) - int(a) )  # This is the line where it points to error.
    #print(b)

    digits_of_a = []
    digits_of_b = []
    for i in str(a)[::-1]:
         digits_of_a.append(int(i))   
    for i in str(b)[::-1]:
         digits_of_b.append(int(i))

    return (sum(digits_of_a) + sum(digits_of_b))

代码实际上在codewars.com上针对“尝试”报告了测试用例的正确答案,但最终提交失败。它以错误代码1退出。它说ValueError:int()的无效文字,基数为10:''

我已经阅读了该主题的其他文章,并且了解到错误是由于尝试将空格字符转换为整数而引起的。无法弄清楚该语句为什么会得到空格字符。它们都是字符串的int表示形式...?

1 个答案:

答案 0 :(得分:2)

当您将一位整数int传递给该函数时,会出现此错误,因为len_of_n = len(str(n))等于1并且 len_of_n-=1等于0。0 * '9'将为您提供一个空字符串,该字符串不能转换为int。从而给您错误

  

int()以10为底的无效文字:''