Короткий способ конвертировать строку в int

Обычно я делаю это для преобразования строки в int:

my_input = int(my_input)

но мне было интересно, есть ли менее неуклюжий путь, потому что он кажется довольно длинным.

Ответ 1

my_input = int(my_input)

Нет более короткого пути, чем использование функции int (как вы упомянули)

Ответ 2

Может быть, вы надеялись на что-то вроде 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

Ответ 3

Если это пользовательский ввод, скорее всего, пользователь ввел строку. Так что лучше поймайте исключение и с try:

user_input = '88.8'
try:
    user_input = int(float(user_input))
except:
    user_input = 0
print(user_input)

Ответ 4

Что если у меня есть данные типа 1135, которые я хочу преобразовать в int. при использовании int (float (UserInput)) и int() оба не решают задачу, оба выдают исключения ValueError: не удалось преобразовать строку в float: '1,135'