有人有快速将不安全字符串转换为 int
的方法吗?
返回的字符串通常为:'234\r\n'
或类似的内容。
在这种情况下,我想要 234
。如果'-1\r\n'
,我要-1
。我从不希望该方法失败,但我不想尝试,除了,传递只是为了隐藏错误(以防发生极端情况)。
最佳答案
在这种情况下你确实有办法避免try
/except
,虽然我不推荐它(假设你的输入字符串被命名为s
,并且你在一个必须返回一些东西的函数中):
xs = s.strip()
if xs[0:1] in '+-': xs = xs[1:]
if xs.isdigit(): return int(s)
else: ...
else
中的 ...
部分是您返回所需内容的地方,如果 s
是 'iamnotanumber'
、'23skidoo'
、空、全空格等。
除非你输入的很多字符串不是数字,否则 try/except 会更好:
try: return int(s)
except ValueError: ...
你看到了简洁的好处,避免了繁琐的字符串操作和测试!-)
我看到很多答案都是 int(s.strip())
,但这是多余的:不需要剥离!
>>> int(' 23 ')
23
int
足以完全忽略前导和尾随空格!-)
关于Python:将字符串转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2508861/