Изучаем Python - [13]

Шрифт
Интервал

2-7. Удаление пропусков: сохраните имя пользователя в переменной. Добавьте в начале и в конце имени несколько пропусков. Проследите за тем, чтобы каждая служебная последовательность , “\t” и “\n”, встречалась по крайней мере один раз.

Выведите имя, чтобы были видны пропуски в начале и конце строки. Затем выведите его снова с использованием каждой из функций удаления пропусков: lstrip(), rstrip() и strip().

Числа


Числа очень часто применяются в программировании для ведения счета в играх, представления данных в визуализациях, хранения информации в веб-приложениях и т.д. В Python числовые данные делятся на несколько категорий по способу их использования. Для начала посмотрим, как Python работает с целыми числами, потому что с ними возникает меньше всего проблем.

Целые числа


В Python с целыми числами можно выполнять операции сложения (+), вычитания (-), умножения (*) и деления(/).

>>> 2 + 3

5

>>> 3 - 2

1

>>> 2 * 3

6

>>> 3 / 2

1.5

В терминальном сеансе Python просто возвращает результат операции. Для представления операции возведения в степень в Python используется сдвоенный знак умножения:

>>> 3 ** 2

9

>>> 3 ** 3

27

>>> 10 ** 6

1000000

В Python также существует определенный порядок операций, что позволяет использовать несколько операций в одном выражении. Круглые скобки используются для изменения порядка операций, чтобы выражение могло вычисляться в нужном порядке. Пример:

>>> 2 + 3*4

14

>>> (2 + 3) * 4

20

Пробелы в этих примерах не влияют на то, как Python вычисляет выражения; они просто помогают быстрее найти приоритетные операции при чтении кода.

Вещественные числа


В Python числа, имеющие дробную часть, называются вещественными (или «числами с плавающей точкой»). Обычно разработчик может просто пользоваться дробными значениями, не особенно задумываясь об их поведении. Просто введите нужные числа, а Python скорее всего сделает именно то, что вы от него хотите:

>>> 0.1 + 0.1

0.2

>>> 0.2 + 0.2

0.4

>>> 2 * 0.1

0.2

>>> 2 * 0.2

0.4

Однако в некоторых ситуациях вдруг оказывается, что результат содержит неожиданно большое количество разрядов в дробной части:

>>> 0.2 + 0.1

0.30000000000000004

>>> 3 * 0.1

0.30000000000000004

Нечто подобное может произойти в любом языке; для беспокойства нет причин. Python пытается подобрать как можно более точное представление результата, что иногда бывает нелегко из-за особенностей внутреннего представления чисел в компьютерах. Пока просто не обращайте внимания на «лишние» разряды; вы ­узнаете, как поступать в подобных ситуациях, когда эта проблема станет актуальной для вас в проектах части II.

Предотвращение ошибок типов с использованием функции str()


Часто значение переменной должно использоваться внутри сообщения. Допустим, вы хотите поздравить пользователя с днем рождения. И вы написали для этого следующий код:

birthday.py

age = 23

message = "Happy " + age + "rd Birthday!"

print(message)

Казалось бы, программа должна вывести простое приветствие: Happy 23rd birthday! Но, если запустить ее, появляется сообщение об ошибке:

Traceback (most recent call last):

File "birthday.py", line 2, in

. .message = "Happy " + age + "rd Birthday!"

(1) TypeError: Can't convert 'int' object to str implicitly

На этот раз произошла ошибка типа. Это означает, что Python не понимает, какую информацию вы используете. В данном примере Python видит, что в точке (1) используется переменная с целочисленным значением (int), но не знает, как следует интерпретировать это значение. Дело в том, что переменная может представлять как число 23, так и пару отдельных символов 2 и 3. При таком использовании целых чисел в строках необходимо явно указать, что целое число должно использоваться как строка из символов. Для этого переменная передается функции str(), преобразующей не-строковые значения к строковому виду:

age = 23

message = "Happy " + str(age) + "rd Birthday!"


print(message)

Теперь Python понимает, что вы хотите преобразовать числовое значение 23 в строку и вывести символы 2 и 3 в составе поздравления. Ожидаемый результат выводится без всяких ошибок:

Happy 23rd Birthday!

В большинстве случаев работа с числами в Python проходит достаточно тривиально. Если вы получаете неожиданные результаты, проверьте, правильно ли Python интерпретирует числовые данные – как числовое значение или как строку.

Целые числа в Python 2


При делении целых чисел Python 2 возвращает несколько иной результат:

>>> python2.7

>>> 3 / 2

1

Вместо 1.5 Python возвращает 1. Результатом деления целых чисел в Python 2 становится целое число с потерей остатка. Обратите внимание: результат не округ­ляется, просто остаток от деления пропадает.

Чтобы избежать этого поведения в Python 2, проследите за тем, чтобы хотя бы одно из двух чисел было вещественным. В этом случае результат также будет вещественным:

>>> 3 / 2

1

>>> 3.0 / 2

1.5

>>> 3 / 2.0

1.5

>>> 3.0 / 2.0

1.5

Такое поведение при делении часто приводит к недоразумениям, когда люди, привыкшие работать с Python 3, начинают использовать Python 2, или наоборот. Если вы используете или пишете код, в котором смешиваются целые и вещественные числа, будьте внимательны.


Рекомендуем почитать
Технологии INTRANET.  История Java. Как начиналась революция Интернет

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Я-муары. Откровенные истории блогера

Во всякой уважающей себя книге должно быть предисловие.Но ведь это не совсем настоящая книга! Здесь нет выдуманных героев и сочиненных ситуаций, удачных рецептов, и даже отсутствуют рекомендации, как выйти замуж за олигарха!Почему стоит прочитать эту книгу? Прежде всего потому, что она и о вас.О нашей общей жизни, в которой много чего есть, но больше всего, конечно, любви. Так что это записки о любви, реальные записки, а не выдуманные.Эту самую жизнь я стала записывать на страницах Живого Журнала. Для себя и моих близких.


Флибуста. Обратная сторона. Инструкции по установке и запуску i2p, TOR и VPN для «чайников». v. 1.1

Тема форума Флибуста через i2p, TOR и VPN (инструкции по установке и запуску для «чайников»). v. 1.0ВНИМАНИЕ!Все приведённые ниже настройки не обеспечивают вашу полную анонимность в сети, и предназначены исключительно для доступа к книгам на Флибусте.Информацию по безопасной работе с запрещенными сайтами это руководство не дает, это не является профилем библиотеки.Берегите себя.


Корпоративный веб-сайт на 100%. Требуйте от сайта большего!

Системное, компактное и хорошо структурированное руковод ство по всем аспектам функционирования корпоративных сайтов. Книга обобщает богатый практический опыт ее авторов (более 700 успешных проектов в сфере веб-разработок и сотни печатных и электронных публикаций). На страницах книги вы найдете множество рекомендаций, примеров, методик и контрольных списков, которые позволят сделать ваш веб-сайт мощным бизнес-инструментом.Книга адресована директорам по маркетингу и другим специалистам, в чьи обязанности входит управление корпоративными веб-сайтами.В качестве важного дополнения к настояшему изданию рекомендуем сайт www.webdevelopment.ru, на котором вы можете оставить свои комментарии, ознакомиться с дополнительными материалами, задать вопросы, пообщаться с авторами.


Прикладное программное обеспечение: системы автоматической обработки текстов

Учебное пособие знакомит читателей с одной из наиболее интересных и перспективных задач прикладного программирования - задачей автоматической обработки тестов на естественном языке. Рассмитриваются рациональные сферы применения систме автоматической обработки текстов , проблемы их линвистиеского обеспечения. Для студентов 2 курса факультета ВМК МГУ в поддержку обязательного лекционного курса "Прикладное программное обеспчение". Авторы пособия благодарят Владимира Геннадиевича Абрамова и Валерия Ивановича Родина за ценные советы и замечания.


Вопрос безопасности в Интернет это вопрос ВЕРЫ, Веры в чистые помыслы Била Гейтса

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Программист-фанатик

В этой книге вы не найдете описания конкретных технологий, алгоритмов и языков программирования — ценность ее не в этом. Она представляет собой сборник практических советов и рекомендаций, касающихся ситуаций, с которыми порой сталкивается любой разработчик: отсутствие мотивации, выбор приоритетов, психология программирования, отношения с руководством и коллегами и многие другие. Подобные знания обычно приходят лишь в результате многолетнего опыта реальной работы. По большому счету перед вами — ярко и увлекательно написанное руководство, которое поможет быстро сделать карьеру в индустрии разработки ПО любому, кто поставил себе такую цель.


SQL: быстрое погружение

Что общего между самыми востребованными профессиями и стремительным увеличением количества информации в мире? Ответ: язык структурированных запросов (SQL). SQL — рабочая лошадка среди языков программирования, основа основ для современного анализа и управления данными. Книга «SQL: быстрое погружение» идеальна для всех, кто ищет новые перспективы карьерного роста; для разработчиков, которые хотят расширить свои навыки и знания в программировании; для любого человека, даже без опыта, кто хочет воспользоваться возможностями будущего, в котором будут править данные.


Чистый код. Создание, анализ и рефакторинг

Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей.


Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих

Алгоритмы - это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузится в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы - это просто. А грокать алгоритмы - это веселое и увлекательное занятие.