Як перетворити рядки на цілі числа у Python

Подібно до вбудованого str()методу, Python також пропонує зручний int()метод, який приймає рядовий об'єкт як аргумент і повертає ціле число.

Приклад використання:

# Here age is a string object age = "18" print(age) # Converting a string to an integer int_age = int(age) print(int_age)

Вихід:

18 18

Хоча вихідні дані візуально подібні, майте на увазі, що перший рядок є рядковим об'єктом, тоді як наступний рядок є цілочисельним об'єктом. Це додатково проілюстровано на наступному прикладі:

age = "18" print(age + 2)

Вихід:

Traceback (most recent call last): File "", line 1, in  TypeError: cannot concatenate 'str' and 'int' objects

Помилка повинна дати вам зрозуміти, що вам потрібно перетворити ageоб’єкт на ціле число, перш ніж щось до нього додавати.

age = "18" age_int = int(age) print(age_int + 2)

Вихід:

20

Але майте на увазі ці особливі випадки:

  • Плаваюча точка (ціле число з дробовою частиною) як аргумент повертає плаваючу округлену вниз до найближчого цілого цілого числа. Наприклад: print(int(7.9))надрукує 7. З іншого боку, print(int("7.9"))це призведе до помилки, оскільки поплавок як рядовий об’єкт не може бути перетворений у ціле число.
Traceback (most recent call last): File "", line 1, in  ValueError: invalid literal for int() with base 10: '7.9'
  • Слова, подані як аргумент, повернуть ту саму помилку. Наприклад, print(int("one"))поверне:
Traceback (most recent call last): File "", line 1, in  ValueError: invalid literal for int() with base 10: 'one'