将字符串转换为整数的简便方法

29

我通常这样将字符串转换为整数:

my_input = int(my_input)

但我在想是否有一种更不拙劣的方式,因为它感觉有点冗长。


我无法想象原则上缩短版本应该是什么样子的。除非你想重新命名 i = int 或者其他什么?但我们必须使用某种代码(调用函数是最简短的方式),并且我们必须将值赋回去(因为字符串是不可变的)。 - Karl Knechtel
3个回答

36
my_input = int(my_input)

使用int函数是最简单的方法(如您所提到的)。


int('88.8') 会报错。 - defend orca

5
也许你希望像这样做:my_number = my_input.to_int。但目前还没有原生支持这种方法。有趣的是,如果你想从类似浮点数的字符串中提取整数部分,你必须先将其转换为float,然后再转换为int。否则你会得到一个ValueError: invalid literal for int()错误。 更加稳健的方法:
my_input = int(float(my_input))

For example:

>>> nb = "88.8"
>>> int(nb)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '88.8'
>>> int(float(nb))
88

4
如果是用户输入,很可能用户输入了一个字符串。因此最好使用try来捕获异常:
user_input = '88.8'
try:
    user_input = int(float(user_input))
except:
    user_input = 0
print(user_input)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接