这个字符串的整形转换出了啥问题???
class Solution(object):def reverse(self, x):
"""
:type x: int
:rtype: int
"""
y=str(x)
s=' '
if x>0:
for i in range(len(y)):
s+=y[-1-i]
if int(s)>2**31-1:
return 0
else:
return int(s)
else:
for i in range(len(y)-1):
s+=y[-1-i]
if int(s)>2**31-1:
return 0
else:
return -int(s)
一直提示 invalid literal for int()with base 10
if int(s)>2**31-1:
line 19 inreverse······
int 函数转换字符串时,字符串必须为纯整数字符串,即字符串中不能有非数字字符,除了负数的负号
"." 小数点也是无法转换的,若你的数有可能为小数,那么应该将 int 改用为 float
从代码上来看,应该不是小数字符串问题,是你的字符串非纯整数字符串,导致 int 函数转换整形失败,抛出此错误
Twilight6 发表于 2022-9-26 19:56
int 函数转换字符串时,字符串必须为纯整数字符串,即字符串中不能有非数字字符,除了负数的负号
"."...
x一定是整形,而我又将符号剔除了,int转换到底哪里有问题呢?难道是空字符吗?(s='')
如果是这样,那又该怎么解决???? little.hong 发表于 2022-9-26 20:04
x一定是整形,而我又将符号剔除了,int转换到底哪里有问题呢?难道是空字符吗?(s='')
如果是这样,那 ...
s = ' ' 你这不是空字符串,是一个空格字符串,把字符串中的空格删了,应该就没问题了
页:
[1]