little.hong 发表于 2022-9-26 19:50:46

这个字符串的整形转换出了啥问题???

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······

Twilight6 发表于 2022-9-26 19:56:08


int 函数转换字符串时,字符串必须为纯整数字符串,即字符串中不能有非数字字符,除了负数的负号

"." 小数点也是无法转换的,若你的数有可能为小数,那么应该将 int 改用为 float

从代码上来看,应该不是小数字符串问题,是你的字符串非纯整数字符串,导致 int 函数转换整形失败,抛出此错误

little.hong 发表于 2022-9-26 20:04:39

Twilight6 发表于 2022-9-26 19:56
int 函数转换字符串时,字符串必须为纯整数字符串,即字符串中不能有非数字字符,除了负数的负号

"."...

x一定是整形,而我又将符号剔除了,int转换到底哪里有问题呢?难道是空字符吗?(s='')
如果是这样,那又该怎么解决????

Twilight6 发表于 2022-9-26 20:06:20

little.hong 发表于 2022-9-26 20:04
x一定是整形,而我又将符号剔除了,int转换到底哪里有问题呢?难道是空字符吗?(s='')
如果是这样,那 ...



s = ' ' 你这不是空字符串,是一个空格字符串,把字符串中的空格删了,应该就没问题了

页: [1]
查看完整版本: 这个字符串的整形转换出了啥问题???