问题陈述
给出一个整数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表示形式...?
答案 0 :(得分:2)
当您将一位整数int传递给该函数时,会出现此错误,因为len_of_n = len(str(n))
等于1并且
len_of_n-=1
等于0。0 * '9'
将为您提供一个空字符串,该字符串不能转换为int。从而给您错误
int()以10为底的无效文字:''