鱼C论坛

 找回密码
 立即注册
查看: 2328|回复: 3

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

[复制链接]
发表于 2022-9-26 19:50:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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······
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-26 19:56:08 | 显示全部楼层

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

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

从代码上来看,应该不是小数字符串问题,是你的字符串非纯整数字符串,导致 int 函数转换整形失败,抛出此错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-26 20:04:39 | 显示全部楼层
Twilight6 发表于 2022-9-26 19:56
int 函数转换字符串时,字符串必须为纯整数字符串,即字符串中不能有非数字字符,除了负数的负号

"."  ...

x一定是整形,而我又将符号剔除了,int转换到底哪里有问题呢?难道是空字符吗?(s='')
如果是这样,那又该怎么解决????
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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




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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 06:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表