【发布时间】:2017-06-09 18:52:48
【问题描述】:
我通常这样做是为了将字符串转换为 int:
my_input = int(my_input)
但我想知道是否有不那么笨拙的方法,因为感觉有点长。
【问题讨论】:
标签: python python-3.x type-conversion
我通常这样做是为了将字符串转换为 int:
my_input = int(my_input)
但我想知道是否有不那么笨拙的方法,因为感觉有点长。
【问题讨论】:
标签: python python-3.x type-conversion
如果是用户输入,很可能是用户输入了一个字符串。所以最好用try 捕获异常:
user_input = '88.8'
try:
user_input = int(float(user_input))
except:
user_input = 0
print(user_input)
【讨论】:
也许您希望得到类似my_number = my_input.to_int 的东西。但目前无法在本地进行。有趣的是,如果你想从类似浮点的字符串中提取整数部分,你必须先转换为float,然后再转换为int。否则你会得到ValueError: invalid literal for int()。
稳健的方式:
my_input = int(float(my_input))
例如:
>>> 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
【讨论】:
my_input = int(my_input)
没有比使用int 函数更短的方法了(正如你提到的)
【讨论】: