Как преобразовать строку в целое число?

Для преобразования строки в целое число в Python используется функция int(). Например:
number_string = "123"
number_int = int(number_string)
print(number_int) # Вывод: 123
print(type(number_int)) # Вывод: <class 'int'>
  
Необходимо обрабатывать исключение ValueError, если строка не может быть преобразована в целое число.
try:
  number_string = "abc"
  number_int = int(number_string)
except ValueError:
  print("Невозможно преобразовать строку в целое число")
  

Для преобразования строки в целое число в Python используются функции int() и, реже, float() с последующим приведением к целому типу.

Функция int():

Это основной и наиболее часто используемый способ. Она пытается преобразовать строку в целое число. Если строка не может быть преобразована (например, содержит буквы или символы, отличные от цифр и знака минус), возникает исключение ValueError.

# Базовое использование
string_number = "123"
integer_number = int(string_number)
print(integer_number, type(integer_number)) # Output: 123 <class 'int'>

# Строка с отрицательным числом
string_negative = "-456"
negative_number = int(string_negative)
print(negative_number, type(negative_number)) # Output: -456 <class 'int'>

# Строка с ведущими пробелами (они игнорируются)
string_with_spaces = "  789  "
number_with_spaces = int(string_with_spaces)
print(number_with_spaces, type(number_with_spaces)) # Output: 789 <class 'int'>

# Преобразование из шестнадцатеричной системы
hex_string = "FF"
decimal_number = int(hex_string, 16) # Второй аргумент - основание системы счисления
print(decimal_number, type(decimal_number)) # Output: 255 <class 'int'>

# Обработка исключений
string_invalid = "abc"
try:
    invalid_number = int(string_invalid)
    print(invalid_number) # Это не выполнится, если возникнет исключение
except ValueError:
    print("Невозможно преобразовать строку в целое число.")

string_float = "3.14" # строка, представляющая дробное число
try:
    float_to_int = int(string_float)
    print(float_to_int)
except ValueError:
    print("Невозможно преобразовать строку, представляющую дробное число напрямую в int. Используйте float() сначала.")

Обработка ошибок:

Важно оборачивать преобразование в блоки try...except для обработки возможных исключений ValueError, которые возникают, если строка не соответствует формату целого числа. Это предотвращает аварийное завершение программы.

Преобразование строк, представляющих числа с плавающей точкой:

Если строка представляет число с плавающей точкой (например, "3.14"), сначала необходимо преобразовать ее в float, а затем в int (если требуется именно целое число). При преобразовании float в int дробная часть будет отброшена.

float_string = "3.14"
float_number = float(float_string)
integer_number = int(float_number) # Дробная часть будет отброшена!
print(integer_number, type(integer_number)) # Output: 3 <class 'int'>

Альтернативные варианты (менее распространены):

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

0