99
>>> int('-23')
-23
>>> int('+12')
12
Преобразование целого числа в целое число ничего не меняет и совсем не вредит:
>>> int(12345)
12345
Если вы попробуете преобразовать что-то непохожее на число, сгенерируется
исключение:
>>> int('99 bottles of beer on the wall')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '99 bottles of beer on the wall'
>>> int('')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ''
Текстовая строка в предыдущем примере начинается с корректных символов-
цифр (99), но продолжается теми символами, которые функция int() обработать
не может.
Мы рассмотрим исключения в главе 4. Пока нужно только помнить, что с помощью исклю-
чений Python извещает вас о том, что произошла ошибка, вместо того чтобы прервать вы-
полнение программы, как поступают некоторые другие языки. Вместо того чтобы показы-
вать вам лишь правильные примеры, я продемонстрирую множество вариантов исключений,
чтобы вы знали, как поступает Python, когда что-то идет не так.
Функция int() будет создавать целые числа из чисел с плавающей точкой или
строк, состоящих из цифр, но она не будет обрабатывать строки, содержащие де-
сятичные точки или экспоненты:
>>> int('98.6')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '98.6'
>>> int('1.0e4')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1.0e4'
Числа
55
Если вы смешаете численные значения, Python будет пытаться автоматически
преобразовать их:
>>> 4 + 7.0
11.0
Булево значение False рассматривается как 0 или 0.0, когда оно смешивается
с целыми числами или числами с плавающей точкой, а True — как 1 или 1.0:
>>> True + 2
3
>>> False + 5.0
5.0