Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 36

>>> int('99')

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