Обычно я делаю это для преобразования строки в 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:
Что если у меня есть данные типа 1135, которые я хочу преобразовать в int. при использовании int (float (UserInput)) и int() оба не решают задачу, оба выдают исключения ValueError: не удалось преобразовать строку в float: '1,135'