Продолжаем обзор книг по Python для начинающих разработчиков и сегодня на очереди — «Python. Быстрый старт» Джейми Чана.
Совсем крохотная книга для совсем новичков. Однако для написания такой небольшой книги требуется огромный талант, ведь нужно убрать всё лишнее и оставить только самое важное. Здесь нет места для несмешных анекдотов как у Рика Гаско или для комплексных чисел как у Дэна Бэйдера. Также в таких книгах вы не найдете какой-то глубины и нестандартного применения Python. Только основа. Но этой основы вам должно хватить, чтобы начать писать простые программы, а затем и перейти к изучению более сложных и глубоких концепций языка. И это я всё говорю не про «Python. Быстрый старт», а про маленькие книги в принципе.
С быстрым стартом нам еще предстоит разобраться и давайте посмотрим, что там внутри. Книга традиционное начинается с со знакомства с Python, и знаете, чего тут нет? Тут нет того, что Python назван в честь британского сериала Летающий цирк Монти Пайтона, а не в честь змеи.
И это уже хорошее начало, потому что Летающий цирк Монти Пайтона — самая неважная информация о Питоне, которая только существует.
Сразу после вводной главы про язык, которая, занимает всего три страницы, мы переходим к установке Python и, уже через пару страниц пишем свой первый код в IDLE.
В целом, тут всё понятно и легко, единственное меня смутил лишний пробел после функции print() и отсутствие пробела после решетки в комментарии.
Это не в стиле Python и далее по книге автор везде придерживается такого стиля.
Я решил погуглить кто такой Джейми Чан и, судя по всему, Питон — это не его основной язык. Джейми Чан — это профессиональный технический писатель, автор серии «Learn Coding In One Day And Learn It Well». У него есть книги по SQL, Java, PHP, C#, CSS, SQL и так далее.
И данная книга, это уже второе издание. Первое можно легко найти в сети и в нём с ходу идут неработающие программы, в которых используются неправильные кавычки. А во втором издании, как иностранном, так и российском все эти ошибки устранены и код рабочий. Что на самом деле очень круто, ведь в прошлый раз на обзоре была книга «Язык программирования Python» Жукова, в которой неработающий код кочует от издания к изданию.
Но вернемся к нашей книге к третьей главе, в которой рассказывается про переменные и операторы.
И тут я снова столкнулся с небольшими неточностями. Во-первых, для имен переменных автор использует lowerCamelCase нотацию, снова не по канонам, но это простительно:
А вот далее Джейми пишет, что для хранения переменных программа выделяет область дискового пространства на вашем компьютере. И это довольно грубая ошибка, ведь переменные хранятся не на диске, а в оперативной памяти. Если их хранить на диске, то программа будет работать очень медленно.
Далее автор привел список слов, которые нельзя использовать в качестве имен переменных и записал туда print и input. И он повторил ошибку Николы Лейси.
print и input можно использовать в качестве имён переменных. Да, программа будет работать странно, что, но даже переопределив print можно найти способ как вывести данные в консоль. И код ниже вполне рабочий:
from builtins import print as p
# Используем input и print в качестве имен переменных
input = "input"
print = "print"
p(print, input)
В нём я наглядно показываю, что print и input можно использовать в качестве имён переменных. Разумеется, если вы будете писать так в реальной жизни, то вам спасибо никто не скажет, но тем не менее такая возможность есть.
Далее автор делает еще несколько ошибок, например он приводит оператор целочисленного деления // и пишет, что он округляет до ближайшего целого.
Но это не так, классическое округление округляет до ближайшего целого, а вот целочисленное деление просто отсекает дробную часть. Это другое. Более того, в Python вообще не используется классическое округление, в Python работает банковское округление.
Далее автор приводит оператор сложения с присваиванием += и в книге между плюсом и равно стоит пробел, а это синтаксическая ошибка:
Такой код работать не будет. И эту ошибку допустили при верстке российского издания, в оригинальном написано правильно.
В целом же в книге код рабочий, с хорошим форматированием и неплохими примерами. Единственно автор постоянно использует форматирование через %, а это прямо очень устаревший способ:
Более сложные темы
Следующая глава посвящена функциям. Я решил изучить её чуть подробнее, чтобы понять как автор объясняет более-менее сложные темы. И в процессе к Джейми Чану у меня возникло несколько вопросов. Именно таких, которые обычно задают ученики, только-только изучающие функции.
Джейми довольно быстро пробежался по базовым возможностям функций, включая передачу произвольного количества позиционных и именованных аргументов. И при этом в главе приводится мало примеров и еще меньше объяснений. Такое описание скорее подойдет для людей, которые уже знакомы с программированием. Но не для начинающих.
После функций мы переходим к классам, которым посвящено сразу две главы. При чем во второй автор затрагивает перегрузку операторов, что новичку вообще не нужно. Это тема не для такой книги.
После классов мы переходим к 12 главе, в которой нам предлагается вместе с Джейми Чаном написать две небольшие игры. Точнее Джейми даёт небольшие задания, а вам надо их выполнить, что на выходе должно превратиться в законченную программу.
Код которой, для сверки, есть в конце книги. И там вы можете увидеть такой фрагмент:
Так писать допустимо новичкам, но хорошие программисты пишут просто if newUser:.
После же начинается код с использованием свойств классов, включая геттеры и сеттеры. Это довольно сложные концепции, и я не уверен, что новички смогут написать программы из данной книги.
Также я не уверен, что вам следует использовать её для обучения. Слишком много недочетов и довольно поверхностное объяснение действительно важных тем.
В общем я её не рекомендую, есть более достойные книги и вот полный список книг по Python.