Python 计算正确结果的代码的 ValueError
Python ValueError for code that calculates correct results
问题陈述
给定一个整数 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))
该代码实际上在 'attempts' 上 codewars.com 上报告了测试用例的正确答案,但最终提交失败。它以错误代码 1 退出。它说 ValueError: invalid literal for int() with base 10: ''
我已经阅读了关于此的其他线程,并且了解到该错误是由于尝试将 space 字符转换为整数造成的。无法理解为什么该语句会得到 space 字符。它们都是字符串的 int 表示...?
当您将单个数字 int 传递给函数时,您会收到此错误,因为 len_of_n = len(str(n))
将等于 1 并且
len_of_n-=1
将等于 0。0 * '9'
将为您提供一个无法转换为 int 的空字符串。因此给你错误
invalid literal for int() with base 10: ' '
问题陈述
给定一个整数 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))
该代码实际上在 'attempts' 上 codewars.com 上报告了测试用例的正确答案,但最终提交失败。它以错误代码 1 退出。它说 ValueError: invalid literal for int() with base 10: ''
我已经阅读了关于此的其他线程,并且了解到该错误是由于尝试将 space 字符转换为整数造成的。无法理解为什么该语句会得到 space 字符。它们都是字符串的 int 表示...?
当您将单个数字 int 传递给函数时,您会收到此错误,因为 len_of_n = len(str(n))
将等于 1 并且
len_of_n-=1
将等于 0。0 * '9'
将为您提供一个无法转换为 int 的空字符串。因此给你错误
invalid literal for int() with base 10: ' '