Ошибки, сложный материал, вопросы >
Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос нашим менторам. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.
Об обучении на Хекслете

Ввод/вывод

Любая программа, которую мы пишем, так или иначе взаимодействует с внешним миром. Когда мы говорим о программе на Python, то таковая может

  • общаться с операционной системой, чтобы узнать текущее время, свободное место на диске;
  • писать и читать файлы в различных форматах;
  • взаимодействовать с другими программами через различные средства IPC (Inter-Process Communication, Межпроцессного Взаимодействия).

Представим, что вы реализуете web-приложение, пользователь которого может загружать изображения и просматривать как в оригинальном размере, так и в виде галереи миниатюр (уменьшенных копий изображений). Не правда ли, задача вполне реалистична. Подумаем, какие виды взаимодействия будет использовать программа на Python, выступающая в роли сервера. Когда пользователь выберет файл в браузере и нажмёт кнопку отправить, программа

  • примет запрос (взаимодействие с сетью).
  • проверит наличие доступного места на диске (спросит об этом у операционной системы).
  • запишет файл изображения на диск.
  • вызовет программу, которая сформирует для загруженного изображения миниатюру (IPC с дочерним процессом через "буферы стандартного ввода-вывода" (stdin/stdout)).
  • сохранит на диске миниатюру.
  • отправит серверу базы данных (это отдельная программа, запущенная параллельно нашей, возможно даже на другой машине) запрос на добавление информации о загруженном изображении и о том, где оно хранится на диске (это тоже IPC, но через специальный канал — socket).
  • сформирует ответ для пользователя в виде web-страницы, шаблон для которой считает с диска.
  • отправит пользователю ответ (через сеть).

Это далеко не полный список операций ввода-вывода (Input-Output, IO), которые выполняет даже сравнительно простой сервер web-приложения. Но и программы, работающие с данными, используемые при администрировании систем, отображающие графический интерфейс пользователя (Graphic User Interface, GUI) — все так или иначе осуществляют ввод-вывод. И насколько много существует видов взаимодействия с миром у программ, настолько много средств для этого предоставляет любой серьёзный язык программирования. Наиболее важные возможности для осуществления IO в Python мы изучим в последующих курсах.

Стоит помнить, что любой программист должен уметь программировать IO. И должен делать это хорошо! Ведь если загрузка очередной картинки сотрёт все данные на диске или удалит все записи из базы данных, никто не обрадуется.


<span class="translation_missing" title="translation missing: ru.web.courses.lessons.mentors.mentor_avatars">Mentor Avatars</span>

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят менторы из команды Хекслета или другие студенты.

Зарегистрироваться

или войти в аккаунт

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 115 курсов, 2000+ часов теории
  • 800 практических заданий в браузере
  • 250 000 студентов

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Rambler
Логотип компании Bookmate
Логотип компании Botmother

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».

Изображение Тото

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