Скачать «Python. Уроки» вы можете непосредственно с сайта.
В книге основной акцент сделан на обучение базовым вещам (установка и запуск программ, типы данных, условные операторы и циклы, структуры данных, функции, исключения), темы, связанные с ООП, итераторами и генераторами даны в ознакомительном объеме.
Краткое содержание книги:
Урок 1. Установка
Урок 2. Запуск программ на Python
Урок 3. Типы и модель данных
Урок 4. Арифметические операции
Урок 5. Условные операторы и циклы
Урок 6. Работа с IPython и Jupyter Notebook
Урок 7. Работа со списками (list)
Урок 8. Кортежи (tuple)
Урок 9. Словари (dict)
Урок 10. Функции в Python
Урок 11. Работа с исключениями
Урок 12. Ввод-вывод данных. Работа с файлами
Урок 13. Модули и пакеты
Урок 14. Классы и объекты
Урок 15. Итераторы и генераторы
Будем рады любой обратной связи!
Комментарии (27)
dude_sam
19.07.2017 10:39+1Спасибо.
В качестве ремарки: разнообразить бы форматы. Не .pdf единым.artivashenko
20.07.2017 07:31Поддерживаю. Никак не могу себя приучить читать .pdf [с бб], предпочитаю электронную книгу.
Даёшь .mobi! :)
kx13
19.07.2017 13:58+1В разделах "5.2 Оператор цикла while" и "5.4 Оператор цикла for" не сказано, что у операторов while и for может быть дополнительный блок else. Это удобно и позволяет избавляться от ненужных флагов для проверки выхода.
OlegZH
19.07.2017 16:31Я — новичок в Питоне и крайне заинтересованный в этом языке программирования. Такая книга, скорее всего, будет мне полезной.
Как Вы думаете, имело бы смысл брать какие-то темы (например, брать задачи типа «задач на собеседованиях») или, даже, целые проекты и освещать их на Хабре, обсуждая и то, как это описано в Вашей книге и как это может быть написано в некой будущей книге? Тут одно из двух: либо надо насыщать книгу по языку какими-то реальными (сквозными) примерами, чтобы можно было подготовиться к реальной жизни, либо писать отельную книгу по какому-либо вопросу/проекту.
И ещё один момент. Есть ещё и Викиучебник, где сейчас лежит перевод документации по Питону. (2.7 и 3.1). Но, в действительности, предполагается, что пишется именно викиучебник, то есть — собрание учебных материалов, где можно было бы свести воедино хорошую практику программирования, сквозное описание самого языка + тематический/проектный взгляд на вещи. И здесь можно было бы использовать Хабр для создания качественных материалов. Как Вы думаете?marat_ab
20.07.2017 08:23Как Вы думаете, имело бы смысл брать какие-то темы (например, брать задачи типа «задач на собеседованиях») или, даже, целые проекты и освещать их на Хабре, обсуждая и то, как это описано в Вашей книге и как это может быть написано в некой будущей книге? Тут одно из двух: либо надо насыщать книгу по языку какими-то реальными (сквозными) примерами, чтобы можно было подготовиться к реальной жизни, либо писать отельную книгу по какому-либо вопросу/проекту.
Мне кажется лучше разделять книги, посвященные базовым вещам (синтаксис, стандартная библиотека и т.п.), и книги в формате ‘best practices’, через которые авторы делятся своим опытом, полученным при работе над реальными проектами. Конечно, их нужно освещать и обсуждать на Хабре, т.к. на сегодняшний день – это крупнейшая площадка, где собираются русскоговорящие IT специалисты.
И ещё один момент. Есть ещё и Викиучебник, где сейчас лежит перевод документации по Питону. (2.7 и 3.1). Но, в действительности, предполагается, что пишется именно викиучебник, то есть — собрание учебных материалов, где можно было бы свести воедино хорошую практику программирования, сквозное описание самого языка + тематический/проектный взгляд на вещи. И здесь можно было бы использовать Хабр для создания качественных материалов. Как Вы думаете?
У меня вообще есть сомнение в том, что нужно пытаться объединить всё в одном месте с единым способом подачи материала. Т.к. язык Python очень «живой» и используется в массе проектов, которые никак не связаны между собой даже тематически, возникнут трудности с поддержкой этой «библиотеки» в актуальном состоянии. Сегодня используются одни подходы и технологии, завтра все это может поменяться. В этой ситуации большой плюс Хабра в том, что он очень быстро реагирует на изменения и новые тенденции в мире Python (появляются новые посты и т.п.). А когда накапливается какой-то опыт, он, как правило, трансформируется в книгу, например, сейчас довольно много появляется материала, именно в книжном формате, посвященного Python + анализ данных + машинное обучение. В рамках Хабра, хорошо бы периодически выпускать по Python подборки подобные этой: «Подборка: Более 70 источников по машинному обучению для начинающих», ну и дайджесты (но они и так выходят).OlegZH
20.07.2017 15:00Мне, как раз, и не хватает книг, описывающих ‘best practices’. Во многом, я на Хабр пришёл за тем же самым.
У меня вообще есть сомнение в том, что нужно пытаться объединить всё в одном месте с единым способом подачи материала. Т.к. язык Python очень «живой» и используется в массе проектов, которые никак не связаны между собой даже тематически, возникнут трудности с поддержкой этой «библиотеки» в актуальном состоянии. Сегодня используются одни подходы и технологии, завтра все это может поменяться.
Формат Викиучебника позволяет хорошо учесть пластичность языка программирования, когда по какой-то теме можно написать несколько различных статей. Викиучебник (по заданной теме) — это связный набор различных страниц и подстраниц с общей навигацией. В идеале, Викиучебник должен содержать те самые ‘best practices’, о которых Вы говорили выше. Викиучебник мог бы быть следующей ступенью после Хабра, когда берётся определённая тема, например, то же машинное обучение на Питоне, и делается обзор подходов и в структурированном виде приводятся примеры применения. Тут очень важно понимать, что должны быть соответствующие вики-учебники по другим темам (комбинаторика, алгоритмы, теория вероятностей, анализ данных, машинное обучение и т.д. и т.п.) и, в идеале, все эти разнотемные вики-учебники должны быть между собою хорошо связаны. (Даже если сделать отображение всех материалов Хабра на Викиучебник, то получится весьма полезный для читателя продукт!)
То, что касается, лично меня, то я очень хотел бы иметь возможность брать отдельные задачи/вопросы/темы, предполагающие применения Питона, и делать обзорные статьи, излагающие различные варианты решений. В идеале, такие статьи должны содержать полезные сведения и для новичков (желающих изучать Питон и для желающих овладеть определённой темой), так и для специалистов (тут нужно всестороннее рассмотрение предмета статьи и системный подход!).
Темами для статей могут быть полезные задачки на собеседованиях, примеры ‘best practices’ и фундаментальные вопросы. При изучении каждой темы всегда следует ставить вопрос: а что нужно сделать, чтобы быстрее и глубже изучить данный вопрос (данный аспект языка программирования, данную библиотеку, данную технологию). Я такой вопрос попробовал себе поставить и уже успел увидеть несколько потенциальных вариантов тематических статей. Главное, чтобы в статье был хороший практический выход. (Так можно будет написать новую книгу, наверное.)
Может быть, я мог бы с Вами советоваться, чтобы на выходе получилось что-то нужное и полезное (для сообщества)?marat_ab
24.07.2017 10:09Может быть, я мог бы с Вами советоваться, чтобы на выходе получилось что-то нужное и полезное (для сообщества)?
Конечно можно! Будут вопросы — обращайтесь!
shockable
20.07.2017 07:31+1В 14 главе:
print("Color: " + self.color) print("Width: " + str(self.width))
ИМХО, стоит использовать форматирование вместо конкатенации строк и явно указать поля:
rect1 = Rectangle("red", 24, 45) # rect1 = Rectangle(color="red", width=24, height=45)
чтоб приучать читателя книги к более поддерживаемому коду.kx13
20.07.2017 08:17+1print("Color: " + self.color)
Для двух слагаемых такой вариант тоже не читабелен, главное, чтобы второе слогаемое было бы строкой.
Но вот когда переменных больше двух, тогда необходим format.
Кстати, можно упомянуть, что в последней версии 3.6 появился
новый способ форматирования.
EOShipnyagov
20.07.2017 20:57Книжку скачаю, ознакомлюсь, интересно.
Одно небольшое «но», которое озвучу до прочтения книги, в надежде что у вас иначе)
Почти во всех курсах и учебниках по различным языкам (по крайней мере онлайн) очень долго разжевывают что такое переменные и функции, а как дело доходит до объектов и классов — так «ну это же и так ведь понятно». И практически никогда не приводится примеров реальных программ с функционалом посерьезнее калькулятора.
Как выводить графику? Библиотеки? Модули? Как с ними работать? Черт с ней, с графикой, как сделать консольное приложение с псевдоинтерфейсом? Как сохранять состояние переменных? Как потом это дело обратно в программу загрузить? Как правильно делать архитектуру приложения — главный цикл с кучей функций, которые прописываются до него или как?
В общем не освещается множество вопросов, ибо когда я сел в свое время писать простенький to-do менеджер, то столкнулся с тем, что что-бы сделать любое действие, нужно было несколько часов гуглить. В итоге пришлось бросить.kx13
20.07.2017 21:51Про все библиотеки не напишешь. Быстрее погуглить название библиотеки для нужной задачи.
Для питона есть несколько ресурсов где созданы списки модулей для решения конкретных задач.
В книге дается понятия модуля, чтобы понимать как добавлять все нужные библиотеки.
Дольше потом выбирать из множества вариантов.
А по тому как правильно писать программы существуют о дельные книги. Их и надо читать сначала.
Просто те у кого есть опыт они уже своё время потратили на обучение и им гуглит не надо. Поэтому быстро не получится в любом случае.
OlegZH
21.07.2017 14:25Может быть, те «у кого есть опыт они уже своё время потратили на обучение», попробуют написать какие-нибудь книжки по следам своего опыта? Статья на Хабре — это хорошо. Иногда(,) даже(,) очень хорошо. Но! Было бы неплохо превратить серию статей в одну монографию (по определённой теме), да снабдить её хабровскими комментариями и комментариями автора на эти комментарии.
kx13
21.07.2017 14:37Все это давно написано.
Классика на английском:
Если говорить именно про Python, то у Лутца есть двухтомник "Программирование на Python", там уже рассматривается как писать программы. Можете еще посмотреть книгу Л.Рамальо "Python к вершинам мастерства".
Ну и для общего развития читать С.Макдонелла "Совершенный код", П.Гудлиф "Ремесло программиста", вообще таких книг достаточно много.
OlegZH
22.07.2017 20:36Может быть, всё-таки, попытаться что-нибудь такое написать?
Я имел в виду, например, возможность взять какой-то сквозной пример, какой-то набор реальных задач, решая которые на Питоне можно было бы хорошо почувствовать язык и приобрести реальный опыт. К тому же, если такую книгу построить в виде беседы или снабдить каждую главу беседной частью (некоторые беседы на Хабре стоят целой поэмы, а поэма стоит целого романа!), то могло бы получиться нечто особо выразительное и эффективное для любого читателя.
Тут, ведь, какое дело. Есть документация. Пересказывать документацию не очень здорово. Вот если мы вводим читателя в новый дивный мир, то нужен сюжет. Завлекательный и с практическим выходом. Да и форма подачи нужна соответствующая. Да, должно быть краткое введение в сам язык, но целью должно быть умение писать на нём программы.kx13
22.07.2017 21:55На питоне программы пишутся точно так же как и на других подобных языках.
Реальные задачи они ведь разные, от примитивных до огромных. В книге "Программирование на Python" как раз рассматриваются примеры готовых программ.
Даже если написать про какие-то конкретные задачи, то для других задач набор методик может быть другой.
Можно поискать всякие python-idioms, best-practice и все такое. Это набор небольших рецептов, с которые надо применять на практике.
Одна конкретная книга, не научит писать программы, надо прочитать не меньше десятка книг и написать много программ.
А чтобы почувствовать язык и приобрести реальный опыт, просто садишься и пишешь. С опытом приходит мастерство (так же как и в любом другом деле). Книги, которые я указал, вполне достаточно для того, чтобы писать программы.
Первая цель — написать программу, которая выполняет поставленную задачу. Красиво, правильно, медленно — не важно, главное, что делает. Далее с ростом опыта, сам будешь замечать свои ошибки и исправлять их.
Лучший вариант, если найдется более опытный товарищ, который прокомментирует код и укажет на ошибки.
Если есть какая-то реальная задача и ты не знаешь как к ней приступить, задавай более конкретные вопросы, получишь более конкретные ответы.
mmblsc
Вводного материала очень много. Был бы рад книге по подобию задача-проект-решение. С учетом текущих реалий, хотя бы пресловутой непрерывной интеграции
LeoMat
Я пытался сделать что-то подобное на Викиверситете