Python:将字符串转换为整数

标签 python

有人有快速将不安全字符串转换为 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/

相关文章:

python - _<parent_class><__method_name> 模式覆盖父类 <__method_name>,为什么?

python - 如何对信号保留尖峰进行下采样?

python - 在 vagrant up 上运行 python 脚本

python - 在我使用 PyInstaller 将 PY 转换为 EXE 后,它抛出错误

python - 自动检测文件夹中新添加的文件并在默认打印机上打印

python:无法打开文件 'django-admin.py':[Errno 2] 没有这样的文件或目录

python - 使用 beautifulsoup 查找所有强标签会返回一个空数组

python - 在pytest中重用数据结构

python - 在Python中处理二维列表边界检查的最佳方法?

Python根据其他列表求和列表元素