9 конструкций python которые нужно знать
Перейти к содержимому

9 конструкций python которые нужно знать

  • автор:

Базовый синтаксис языка Python

программирования, работающий на всех распространённых операционных системах.

В настоящее время существует две версии языка Python: более старая и стремительно теряющая популярность версия 2 и современная версия 3. Мы будем использовать версию 3 данного языка. Именно её необходимо установить дома, скачав данную версию с сайта www.python.org.

Запустить интерпретатор python можно из командной строки:

python3

Будьте внимательны: команда python может запустить интерпретатор версии 2, с которым мы работать не будем. В системе Windows можно использовать пункт меню «Python (command line)».

Интерактивный режим

Откройте командную строку и напишите команду python3.

Вы увидите примерно следующее приглашение командной строки:

Python 3.10.6 (main, Aug 2 2022, 00:00:00) [GCC 12.1.1 20220507 (Red Hat 12.1.1-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> 

Вводите команды и наслаждайтесь результатом. А что можно вводить? Несколько примеров:

>>> 2 + 2 4 >>> 2 ** 100 1267650600228229401496703205376 >>> 'Hello' + 'World' 'HelloWorld' >>> 'ABC' * 10 'ABCABCABCABCABCABCABCABCABCABC' 

Первая команда вычисляет сумму двух чисел, вторая команда вычисляет 2 в степени 100, третья команда выполняет операцию конкатенации («склеивания») для строк, а четвертая команда печатает строку ‘ABC’ , повторенную 10 раз.

Хотите закончить работу с питоном? Введите команду exit () (именно так, со скобочками, так как это — функция) или нажмите :python:Ctrl+D.

Программируемый режим

В предыдущей главе мы использовали Python для простых разовых вычислений, используя интерактивный режим. Теперь создадим программу и выполним её целиком.

a = 179 b = 197 c = (a ** 2 + b ** 2) ** 0.5 print (c) 

Здесь мы используем переменные — объекты, в которых можно сохранять различные (числовые, строковые и прочие) значения. В первой строке переменной a присваивается значение 179 , затем переменной b присваивается значение 197 , затем переменной c присваивается значение арифметического выражения (a 2 + b 2 ) 1 ⁄ 2 , равного длине гипотенузы. После этого значение переменной c выводится на экран.

Упражнение №1: первая программа

Откройте произвольный текстовый редактор, например, gedit . Скопируйте туда текст программы, написанной выше. Сохраните текст в файле с именем hypot . py .

Запустите терминал, перейдите в каталог, где лежит файл hypot . py и выполните эту программу:

python3 hypot.py

Интерпретатор языка Python вместо интерактивного режима выполнит последовательность команд из файла.

При этом значения вычисленных выражений не выводятся на экран (в отличие от интерактивного режима), поэтому для того, чтобы вывести результат работы программы, то есть значение переменной c , нужна функция print () .

Базовый синтаксис языка Python 3

Типы данных

Итак, мы видим, что Python умеет работать как минимум с двумя видами данных — числами и строками. Числа записываются последовательностью цифр, также перед числом может стоять знак минус, а строки записываются в одинарных кавычках. 2 и ‘2’ — это разные объекты, первый объект — число, а второй — строка. Операция :python:+ для целых чисел и для строк работает по-разному: для чисел это сложение, а для строк — конкатенация.

Кроме целых чисел есть и другой класс чисел: действительные (вещественные числа), представляемые в виде десятичных дробей. Они записываются с использованием десятичной точки, например, 2.0 .

Определить тип объекта можно при помощи функции type :

>>> type(2) >>> type(‘2’) >>> type(2.0)

Обратите внимание: type является функцией, аргументы функции указываются в скобках после ее имени.

Операции с числами

Вот список основных операций для чисел:

  • A + B — сумма;
  • A — B — разность;
  • A * B — произведение;
  • A / B — частное;
  • A ** B — возведение в степень:
  • A // B — целочисленное деление;
  • A % B — остаток от деления.

Полезно помнить, что квадратный корень из числа :python:x — это x ** 0.5 , а корень степени :python:n — это x ** ( 1 / n ) .

Есть также унарный вариант операции :python:-, то есть это операция с одним аргументом. Она возвращает число, противоположное данному. Например: — A .

В выражении может встречаться много операций подряд. Как в этом случае определяется порядок действий? Например, чему будет равно 1 + 2 * 3 ** 1 + 1 ? В данном случае ответ будет 8, так как сначала выполняется возведение в степень, затем — умножение, затем — сложение (соответствует математическому 1 + 2⋅3 1 + 1 ).

Более общие правила определения приоритетов операций такие:

  1. Выполняются возведения в степень справа налево, то есть 3 ** 3 ** 3 это 3 27 .
  2. Выполняются унарные минусы (отрицания).
  3. Выполняются умножения и деления слева направо. Операции умножения и деления имеют одинаковый приоритет.
  4. Выполняются сложения и вычитания слева направо. Операции сложения и вычитания имеют одинаковый приоритет.

Операции над строками

  • A + B — конкатенация;
  • A * n — повторение n раз, значение n должно быть целого типа.

Ветвление

Ветвление (или условная инструкция) в Python имеет следующий синтаксис:

if Условие: Блок_инструкций_1 else: Блок_инструкций_2 

Блок_инструкций_1 будет выполнен, если Условие истинно. Если Условие ложно, будет выполнен Блок_инструкций_2 .

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

if x  0: x = -x print(x) 

В этом примере переменной x будет присвоено значение — x , но только в том случае, когда x < 0 . А вот инструкция print ( x ) будет выполнена всегда, независимо от проверяемого условия.

Для выделения блока инструкций, относящихся к инструкции if или else , в языке Python используются отступы. Все инструкции, которые относятся к одному блоку, должны иметь равную величину отступа, то есть одинаковое число пробелов в начале строки. Рекомендуется использовать отступ в 4 пробела.

Вложенные условные инструкции

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

Примере программы, которая по данным ненулевым числам x и y определяет, в какой из четвертей координатной плоскости находится точка (x,y):

x = int(input()) y = int(input()) if x > 0: if y > 0: # x>0, y>0 print("Первая четверть") else: # x>0, y print("Четвертая четверть") else: if y > 0: # x0 print("Вторая четверть") else: # x <0, yprint("Третья четверть") 

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

Операторы сравнения

Как правило, в качестве проверяемого условия используется результат вычисления одного из следующих операторов сравнения:

Оператор Значение
Меньше — условие верно, если первый операнд меньше второго.
> Больше — условие верно, если первый операнд больше второго.
Меньше или равно — условие верно, если первый операнд меньше или равен второму.
>= Больше или равно — условие верно, если первый операнд больше или равен второму.
== Равенство. Условие верно, если два операнда равны.

Операторы сравнения в можно объединять в цепочки, например, a == b == c или 1

Тип данных bool

Операторы сравнения возвращают значения специального логического типа bool . Значения логического типа могут принимать одно из двух значений: True (истина) или False (ложь). Если преобразовать логическое True к типу int , то получится 1, а преобразование False даст 0. При обратном преобразовании число 0 преобразуется в False , а любое ненулевое число в True . При преобразовании str в bool пустая строка преобразовывается в False , а любая непустая строка в True .

Каскадные условные инструкции

Пример программы, определяющий четверть координатной плоскости, можно переписать, используя «каскадную» последовательность инструкцией if . elif . else :

x = int(input()) y = int(input()) if x > 0 and y > 0: print("Первая четверть") elif x  0 and y > 0: print("Вторая четверть") elif x  0 and y  0: print("Третья четверть") elif x > 0 and y  0: print("Четвертая четверть") else: print("Точка находится на осях или в центре координат.") 

В такой конструкции условия if , . elif проверяются по очереди, выполняется блок, соответствующий первому из истинных условий. Если все проверяемые условия ложны, то выполняется блок else , если он присутствует. Обратите внимание, что таким образом мы чётче видим условия наступления случаев (нет «призраков»), а также отлавливаем ситуацию, когда точка не находится ни в одной из четвертей.

Цикл while

Цикл while («пока») позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла.

Синтаксис цикла while в простейшем случае выглядит так:

while Условие: Блок_инструкций 

При выполнении цикла while сначала проверяется условие. Если оно ложно, то выполнение цикла прекращается и управление передается на следующую инструкцию после тела цикла while . Если условие истинно, то выполняется инструкция, после чего условие проверяется снова и снова выполняется инструкция. Так продолжается до тех пор, пока условие будет истинно. Как только условие станет ложно, работа цикла завершится и управление передастся следующей инструкции после цикла.

Например, следующий фрагмент программы напечатает на экран всех целые числа, не превосходящие n:

a = 1 while a  n: print(a) a += 1 

Общая схема цикла while в данном случае для перебора всех подходящих значений такая:

a = начальное_значение while а_является_подходящим_числом: обработать_a перейти_к_следующему_a 

Выведем все степени двойки, не превосходящие числа n:

a = 1 while a  n: print(a) a *= 2 

Цикл for

Цикл for может быть использован как более краткая альтернатива циклу while .

Для последовательного перебора целых чисел из диапазона [ 0 ; n ) можно использовать цикл for :

for i in range(10): print(i) 

Этот код по выполняемым действиям полностью соответствуют циклу while :

i = 0 while i  10: print(i) i += 1 

Можно задавать начальные и конечные значения для переменной цикла, а также шаг:

for i in range(20, 10, -2): print(i) 

Аналогичный цикл while

i = 20 while i > 10: print(i) i -= 2 

Контест №1

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

В первый раз вам придётся создать пользователя (логин и пароль обязательно запишите!), а также ввести некоторую регистрационную информацию: фамилию, имя, номер учебной группы. Пожалуйста, вводите реальные данные, иначе преподаватель не сможет учитывать ваши решения.

Попробуйте сдать решение первой задачи:

x, y = input().split() x, y = int(x), int(y) print(x + y) 

Сайт построен с использованием Pelican. За основу оформления взята тема от Smashing Magazine. Исходные тексты программ, приведённые на этом сайте, распространяются под лицензией GPLv3, все остальные материалы сайта распространяются под лицензией CC-BY.

Бесплатный курс по Python для начинающих

Изучение программирования — непростой и длительный процесс. Изучение синтаксиса языка — самая простая и короткая часть в пути, но без неё невозможно начать. Этот курс посвящен азам написания программ на Python. Он готовит плацдарм для написания осмысленных программ

25 часов 104716 студентов 71 урок с практикой в браузере

Основы языка Python

  • 1. Привет, Мир!
  • 2. Комментарии
  • 3. Инструкции (Statements)
  • 4. Как мы проверяем ваши решения
  • 5. Синтаксические ошибки

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

Арифметика в Python

  • 6. Арифметические операции
  • 7. Операторы
  • 8. Коммутативная операция
  • 9. Композиция операций
  • 10. Приоритет
  • 11. Числа с плавающей точкой
  • 12. Линтер

Современные программы создаются для обслуживания бизнесов, помощи в ежедневной жизни и развлечений. Но в основе их работы по-прежнему лежат вычисления. Наиболее простая и базовая тема в программировании — арифметика. В этом модуле мы переведем арифметические действия на язык программирования, освоим базовую терминологию – например, чем оператор отличается от операнды. Поговорим о приоритете операций. А под конец расскажем, что такое линтер и почему он может «ругаться».

Строки

  • 13. Кавычки
  • 14. Экранированные последовательности
  • 15. Конкатенация
  • 16. Кодировка

Текст в программировании называется «строками», и эта тема не так проста, как может показаться. Как вывести фразу, в которой есть и одинарные, и двойные кавычки? Что такое экранированная последовательность? Модуль посвящен разным аспектам написания текста – мы поэкспериментируем с выводом разных строк и поговорим о кодировке.

Переменные

  • 17. Что такое переменная
  • 18. Изменение переменной
  • 19. Выбор имени переменной
  • 20. Ошибки при работе с переменными
  • 21. Выражения в определениях
  • 22. Переменные и конкатенация
  • 23. Именование переменных
  • 24. Магические числа
  • 25. Константы

Информацию можно помещать в специальные «хранилища», а потом использовать сколько угодно раз. Эти хранилища называются переменными, и они помогают упростить код и сократить лишние повторения.

Глубже про строки

  • 26. Интерполяция
  • 27. Извлечение символов из строки
  • 28. Срезы строк
  • 29. Multi-line строки

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

Типы данных

  • 30. Типы данных
  • 31. Сильная (или Строгая) типизация
  • 32. Неизменяемость примитивных типов
  • 33. Явное преобразование типов

Python – язык с сильной типизацией и неизменяемыми примитивными типами данных. Что произойдет, если мы попробуем умножить число на строку? Каким образом Python понимает, что за тип данных перед ним? Что такое преобразование типов? Ответы на эти вопросы вы найдете в текущем модуле.

Начните прямо сейчас

Вызов функций

  • 34. Функции и их вызов
  • 35. Сигнатура функции
  • 36. Аргументы по умолчанию
  • 37. Вызов функции — выражение
  • 38. Функции с переменным числом параметров
  • 39. Детерминированность
  • 40. Стандартная библиотека

Для выражения любой произвольной операции в программировании существует понятие «функция». Функции — кирпичики, из которых программисты строят системы. В этом модуле мы научимся пользоваться уже созданными функциями. Посмотрим на сигнатуру функции в документации и разберемся, как её использовать. Познакомимся со стандартными библиотеками, которые хранят тысячи функций. Все функции невозможно выучить, но каждый программист должен знать, где искать документацию по ним.

Свойства и методы

  • 41. Объекты
  • 42. Неизменяемость
  • 43. Методы как выражения
  • 44. Цепочка вызовов

Данные, которыми мы оперируем в своих программах, могут обладать важными атрибутами. В Python атрибуты встроены прямо в язык. Кроме статических свойств у данных существуют методы — функции, находящиеся внутри свойств. Свойства и методы — такие же выражения, как переменные или вызовы функции, а значит, их можно всячески комбинировать. Глубже эти темы разбираются на отдельных курсах, посвященных объектно-ориентированным возможностям Python. Мы же в этом модуле изучим основы.

Определение функций

  • 45. Создание (определение) функций
  • 46. Возврат значений
  • 47. Параметры функций
  • 48. Необязательные параметры функций
  • 49. Именованные аргументы
  • 50. Аннотации типов

Определение собственных функций значительно упрощает написание и поддержку программ. Например, умение определять функции позволяет объединять сложные (составные) операции в одну – вся сложность может быть скрыта за одной простой функцией. Научившись писать функции, вы сделаете первый шаг на пути к построению по-настоящему полезных программ. И мы вам в этом поможем. В этом модуле вы создадите свою первую функцию и научитесь давать ей название, которое поймет любой разработчик.

Логика

  • 51. Логический тип
  • 52. Предикаты
  • 53. Комбинирование операций и функций
  • 54. Логические операторы
  • 55. Отрицание
  • 56. Результат логических выражений

Логические выражения позволяют отвечать на вопросы, которые возникают во время работы программы. Пользователь аутентифицирован? Подписка оплачена? Год високосный? В этом модуле изучаем функции-предикаты – те, которые задают вопрос и отвечают на него – правда это или ложь. Попрактикуемся в написании таких функций и перейдем к более сложным логическим выражениям.

Условные конструкции

  • 57. Условная конструкция (if)
  • 58. Условная конструкция else
  • 59. Конструкция else + if = elif
  • 60. Тернарный оператор
  • 61. Оператор Match

Задача функции-предиката — получить ответ на вопрос, но обычно этого недостаточно и нужно выполнить определенное действие в зависимости от ответа. If и if-else – конструкции Python, с помощью которых программист может выбирать необходимое поведение программы в зависимости от разных условий: пропускать одни инструкции и выполнять другие. Их и разберем на практике в этом модуле.

Циклы

  • 62. Цикл While
  • 63. Агрегация данных (Числа)
  • 64. Агрегация данных (Строки)
  • 65. Обход строк
  • 66. Условия внутри тела цикла
  • 67. Формирование строк в циклах
  • 68. Пограничные случаи
  • 69. Синтаксический сахар
  • 70. Возврат из циклов
  • 71. Цикл For

Любой код может повторяться десятки, тысячи, миллионы раз. В комбинации с другими известными нам инструментами — переменными и условиями — это открывает множество возможностей по построению программ и сложных систем. Приведем простой пример. Вам нужно найти конкретную фразу в учебнике из 500 страниц. Фразу вы помните, а вот номер страницы нет. Самый простой (и долгий) способ — последовательно просматривать страницы до тех пор, пока не найдете нужную. Для выполнения таких повторяющихся действий и нужны циклы.

Основы программирования в Python для политологии 2022/23

На этой странице будут появляться различные материалы и объявления, связанные курсом «Основы программирования в Python», читаемого для студентов 2-го курса бакалавриата ОП «Политология» в 2022/2023 учебном году (3-4 модули).

О курсе

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

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

Контакты и полезные ссылки

Преподаватель Паршина Анастасия Алексеевна: тг @aaparshina, почта a.a.parshina@ya.ru

  • Ответы на вопросы студентов (БПТ211, БПТ213)
  • Консультация по теме «Как пройти курс и сдать НЭ?»
  • Консультация по теме «Цикл for, списки, кортежи, множества»
  • Консультация по теме «Текстовые файлы»
  • Консультация по одной из выбранных студентами теме («Веб-скрейпинг», «Работа с API», «Работа с Selenium», «Регулярные выражения», «Визуализация»)
  • Ответы на вопросы студентов (БПТ212, БПТ214)
  • Консультация по теме «Как пройти курс и сдать НЭ?»
  • Консультация по теме «Типы данных, условные конструкции, цикл while»
  • Консультация по теме «Словари и функции»
  • Консультация по одной из выбранных студентами теме («Веб-скрейпинг», «Работа с API», «Работа с Selenium», «Регулярные выражения», «Визуализация»)

Материалы с занятий и консультаций

Семинарские материалы

№ недели Материалы
1 (9.01 — 14.01) Запись консультации 11.01 на тему «Как пройти курс и сдать НЭ?»

План курса

Тема Описание
1 Начало работы в Python Установка Python 3 (дистрибутив Anaconda). Знакомство с интерфейсом Jupyter Notebook. Элементы языка разметки Markdown. Установка и импортирование библиотек. Элементарные вычисления в Python. Переменные в Python. Типы данных в Python: целые числа, вещественные числа, логические переменные, строки. Преобразование типов.
2 Условные конструкции в Python Построение блок-схемы для понимания структуры кода. Условные конструкции и операторы if-else. Особенности использования оператора elif.
3 Структуры данных в Python Списки, кортежи, множества, словари. Изменяемые и неизменяемые типы данных.
4 Циклы в Python Циклы for и while. Применение циклов к строкам, спискам, кортежам и словарям. Альтернатива коду с циклами: списковые включения.
5 Функции в Python Устройство функций в Python. Написание простейших функций. Поиск ошибок в коде и отладка.
6 Работа с текстовыми и табличными файлами Работа с файлами в Python: открытие, изменение, сохранение. Разные форматы хранения данных: csv-файлы, json-файлы, txt-файлы.

Работа с файлами Excel: открытие и сохранение файлов. Обзор базовых возможностей библиотеки pandas.

Правила выставления оценок

Формула

Итог = 0.25 * Самостоятельные работы + 0.25 * Семинарская активность + 0.25 * Контрольная работа + 0.25 * Проект

Округление стандартное арифметическое. Округляется только итоговый результат (оценки по всем формам контроля не округляются).

Апелляции

Апелляции оценок по любой форме контроля принимаются в течение недели с момента публикации оценок по данной форме контроля. По прошествии недели с момента публикации оценок преподаватель имеет право не рассматривать апелляции студентов.

О независимом экзамене

Литература

Рекомендуемая основная литература
  • Nelli, F. (2018). Python Data Analytics : With Pandas, NumPy, and Matplotlib (Vol. Second edition). New York, NY: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1905344
  • Федоров Д. Ю.-ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ PYTHON 2-е изд. Учебное пособие для СПО-М.:Издательство Юрайт,2019-161-Профессиональное образование-978-5-534-11961-9: -Текст электронный // ЭБС Юрайт — https://biblio-online.ru/book/programmirovanie-na-yazyke-vysokogo-urovnya-python-446505
  • Жучкова С. В., Ротмистров А. Н. Автоматическое извлечение текстовых и числовых веб-данных для целей социальных наук // Социология: методология, методы, математическое моделирование. 2020. № 50-51. С. 141-183. URL: https://www.jour.fnisc.ru/index.php/soc4m/article/view/7983
Рекомендуемая дополнительная литература
  • G. Nair, V. (2014). Getting Started with Beautiful Soup. Birmingham, UK: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=691839
  • Data Culture
  • Курсы по Python (DC) в 2022/23 году

Как самостоятельно изучить Python для веб-разработки. Ловите подробный план обучения

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

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

Все написанное здесь является моим субъективным взглядом, основанным на личном опыте.

Как самостоятельно изучить Python для веб-разработки. Ловите подробный план обучения

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

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

Все написанное здесь является моим субъективным взглядом, основанным на личном опыте.

Кто пишет: Тимофей, автор Telegram-канала The Pythonic Way, Python-разработчик с 3+ годами опыта. Гуманитарий в душе, который самостоятельно изучил программирование.

Если вы самостоятельно изучили какой-то язык программирования, поделитесь своей историей с коммьюнити. Напишите нам на [email protected] .

Общие рекомендации

  • Выберите удобную IDE. Процесс разработки в первую очередь должен быть комфортным для вас самих. Лучшая IDE для разработки на Python — это Pycharm, но после войны JetBrains их продукты больше не доступны для покупки аккаунтам из Беларуси и России. Альтернатива — VS Code, достаточно шустрый редактор кода, благодаря плагинам в нем доступны большинство плюшек Pycharm.
  • Обязательно делайте перерывы: дайте вашему мозгу шанс обработать и усвоить полученную информацию. Если у вас долго что‑то не получается — просто отдохните и отвлекитесь. Лучший отдых для меня — прогулка. Выработайте привычку заниматься каждый день.
  • Теория + много практики. Теоретические знания — это безусловно хорошо, но без должного количества практики они ничего не значат. Часто бывает такое, что в теории вам все кажется очевидным и понятным, но как дело касается решения вы обнаруживаете, что сильно путаетесь и голова будто бы не работает. Это нормально! Пытайтесь, пока не получится.
  • Не прыгайте между темами. Обучайтесь поэтапно и в комфортном для вас темпе. Никто не выиграет от того, что вы с утра до вечера будете сидеть за книгами и задачами, после чего сильно перегорите. Перегорание — это в целом распространенная проблема у программистов (и не только). Во время обучения и работы я тоже перегорал и знаю, что это такое. Но в итоге я нашел комфортный для себя темп и определил некоторые рабочие правила, вроде периодического отдыха.
  • Не злоупотребляйте копипастом кода. Старайтесь думать сами. Это не значит, что вы не должны слушать автора, напротив, изучайте курс внимательно. Вы не должны слепо переписывать код и ждать чуда. Пытайтесь решить задачу сами, экспериментируйте, думайте над задачей вместе с автором.
  • Если вам нужно решить большую или же непонятную задачу, декомпозируйте ее на более мелкие.
  • Ищите сообщества — отличный способ сохранить мотивацию и учиться у других.
  • Создавайте пет‑проекты — применяйте полученные знания на практике. Их можно добавить в резюме.
    Начните с простых проектов: калькулятор или текстовая игра. Постепенно переходите к более сложным.

В Adviser найдете: советы по карьере в ИТ, подборки курсов по технологиям, иностранным языкам, скидки на цифровые услуги, книги

Шаг 1. Изучение основ языка + GIT

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

Для начала вам понадобятся несколько базовых команд:

git init # Инициализация репозитория

git add # добавление файлов в staging area

git commit # снимок текущих изменений проекта

git pull # стягиваем последние изменения с репозитория

git push # заливаем изменения после commit’а

Шаг 2. Объектно-ориентированное программирование

Python — это объектно‑ориентированный язык программирования, здесь все является объектом. Следовательно, важно изучить объектно‑ориентированные концепции, такие как классы, объекты, наследование, полиморфизм и инкапсуляция.

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

Шаг 3. Алгоритмы

Для того, чтобы уметь решать поставленные задачи, нужно мыслить алгоритмически. А как это сделать? Правильно, практиковаться в решении различных задач.

В книге «Грокаем алгоритмы» доступнейшим языком рассказывается о различных базовых алгоритмах и понятиях, вроде времени выполнения и О‑большого. Параллельно с изучением данной книги, особенно рекомендую решать разные задачки на codewars или leetcode.

Материалы для изучения на данном этапе

  1. Знакомство с Python. Дэн Бейдер.
    Дэн Бейдер считается одним из лучших авторов по Python. Он пишет очень просто и понятно, данная книга отлично подойдет новичкам.
  2. «Изучаем Python». Марк Лутц
    Многие питонисты считают данную книгу мастхэвом. Освоив материал, вы совершенно точно сможете решать с помощью Python самые разные задачи. Книга написана довольно сложным языком и довольно объёмная — около 1200 страниц.
  3. Укус питона. Swaroop C.H
    Противоположностью учебнику Лутца. Она маленькая (около 164 страниц), содержит в себе самые основы в формате «записок» автора. Книгу вполне можно изучать вместе с каким‑нибудь курсом, например из пункта 4.
  4. Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих. Адитья Бхаргава
    В книге «Грокаем алгоритмы» Адитья Бхаргава не просто показывает примеры таких решений с детальными иллюстрациями, но и учит читателя самостоятельно находить их в дальнейшем. Читатель знакомится с понятиями бинарного поиска, массивами, связанными списками, структурами данных, рекурсией.
    Книга рассчитана на тех, кто уже знаком с основными азами программирования и интересуется алгоритмическими решениями. Автор старается доносить информацию понятным даже новичку языком, иллюстрирует все основные моменты.
  5. Вся серия курсов «Поколение Python».
    Очень хорошие курсы с большим количеством задач, которые познакомят вас с основными типами данных, циклами, условиями и т. д.
  6. Руководство по языку Python. Вполне себе хорошее базовое руководство по языку. Рассматриваются все базовые темы, включая ООП. Сам когда‑то пользовался, было полезно.
  7. Git за полчаса: руководство для начинающих. Отличная статья, которая научит вас основам работы с системой контроля версий.
  8. Гуглите. Вы обучаетесь только тогда, когда сталкиваетесь с трудностями. Поиск решения задачи сильно прокачивает ваши скиллы. Ищите ответы на форумах, в статьях, видео на YouTube и т. д. Только путем проб и ошибок можно по‑настоящему понять изучаемую тему.

Шаг 4. Изучение основ SQL, работа с ORM

Работа с базой данный — неотъемлемая часть работы любого backend‑разработчика. Для начала изучите основы: что такое таблицы, поля, связи и запросы. Остальное за вас сделает ORM (Object‑Relational Mapping) — специальный инструмент, который позволяет разработчикам взаимодействовать с базами данных более объектно‑ориентированным образом.

Вместо написания необработанных SQL‑запросов для взаимодействия с базой данных разработчики могут определять классы, представляющие таблицы базы данных, и использовать эти классы для запроса данных к базе и манипулирования ими.

При помощи ORM вы можете делать все то же самое, что и в самом SQL: создавать таблицы, обновлять их, использовать индексы, писать различные запросы и т. д. Например, в Django используется удобная Django ORM. Сравните сами:

Допустим, у нас есть есть три таблицы: Students, Grade и Marks. Нам нужно вывести всех учащихся 7 класса, у которых оценки выше 4.

Примерно так бы выглядел SQL‑запрос, удовлетворяющий нашей задаче:

FROM Students s

INNER JOIN Grades g ON s.grade_id = g.id

INNER JOIN Marks m ON s.id = m.student_id

WHERE g.grade = 7 AND m.mark > 4;

А вот так в Django ORM:

from django.db.models import Q

from myapp.models import Students

Допустим, у нас есть две таблицы: Book и Author. Мы хотим вывести все книги, автором которых является Стивен Кинг.

JOIN Author a ON b.author_id = a.id

WHERE a.name = ‘Steven King’;

from myapp.models import Book

Book.objects.filter (author__name=’Steven King’)

Материалы для изучения на данном этапе

  1. Разбираем SQL на примере PostgreSQL — SELECT, JOIN, GROUP, HAVING, Coalesce и др. YouTube канал Диджитализируй!
  2. Django ORM и его самые популярные фичи. Статья.
  3. Официальная документация Django ORM .

Шаг 5. Изучение верстки на базовом уровне

Сегодня без верстки никуда. Ее должен знать каждый, в том и числе и backend‑инженер. То же самое я бы мог сказать и о JavaScript, но на данном этапе изучать его необязательно. Вы всегда сможете вернуться к нему позже.

Материалы для изучения на данном этапе

  1. YouTube канал Евгения Андриканича «Фрилансер по жизни». Отличнейший канал, благодаря которому я также в свое время изучал верстку. Автор доступным языком объясняет различные концепции и штуки из верстки и фронтенда в целом. На канале очень много практики, которую Женя буквально «разжевывает» для зрителя.
  2. Ресурс W3 Schools. Полезный сайт, на котором содержится куча информации и практических примеров по всем html‑тегам, css‑селекторам и т. д.
  3. После знакомства с основными концепциями, я бы посоветовал набрать понравившихся макетов из тематических тг‑каналов, вроде этого и тупо верстать их. После нескольких таких макетов вы будете чувствовать себя уверенно и поймете, что верстка — это просто.

Шаг 6. Изучение фреймворка

После того, как вы изучите базовые конструкции Python, а также работу с SQL, переходите к изучению фреймворка. Параллельно стоит изучить работу веба в целом: как сервер взаимодействует с клиентом, как осуществляется сохранение данных на сервере, какие HTTP‑запросы существуют и т. д. Да, это займет у вас какое‑то время, но эти знания — обязательные.

На данный момент на Python существует три самых популярных решения для разработки веб‑приложений: Django, Flask и FastAPI. Какой из них выбрать — решать вам. В этой статье автор проводит понятное сравнение всех трех фреймворков.

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

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

На самом деле существует огромное количество таких паттернов и подходов. Вам не нужно знать их все, но зачастую фреймворк использует тот или иной архитектурный паттерн, следовательно, вам стоит знать как он устроен.

Шаг 7. Создание первого проекта

Для начала вы можете делать проект с курса или книги, которые вы изучаете. После этого вам нужно будет написать что‑то свое. Подумайте. Может быть у вас есть хобби?

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

Шаг 8. Работа с API

Вам так или иначе придется научиться работать с API (Application programming interface) — интерфейсом, при помощи которого один сайт может взаимодействовать с другим.

Грубо говоря API — это набор операций и функций, доступный внешним клиентам.

Задачи backend‑разработчика так или иначе сводятся к созданию или работе с API‑интерфейсом, который далее будет использоваться frontend‑разработчиком.

В Django для проектирования API используется библиотека Django Rest Framework, которая предоставляет все нужные инструменты для создания API прямо из коробки.

Попробуйте поработать с API разных платформ: например, с API площадки Steam, при помощи которой вы можете получить данные о всех размещенных на ней играх.

Материалы для изучения

  1. Quickstart по Django Rest Framework. Официальная документация.
  2. Официальная документация по Django.
  3. Django3 by example. Antonio Mele
    Новая обновленная версия книги Django2 by example. В книге автор разбирает создание различных проектов на Django: начиная от просто блога, заканчивая интернет‑магазином и образовательной платформой
  4. Two Scoops of Django3. Daniel Roy Greenfeld, Audrey Greenfeld
    В этой книге авторы познакомят вас с различными советами, хитростями, шаблонами, фрагментами кода и техниками, которым они научились за годы разработки на Django. Стоит отметить, что книга является обновлением и дополнением предыдущих изданий.
  5. Django for APIs: Build web APIs with Python & Django
    Django for APIs — это основанное на разработке проекта руководство по созданию современных веб‑API с использованием Django & Django REST Framework. Он подходит для начинающих, которые никогда раньше не создавали API, а также для профессиональных программистов, ищущих быстрое знакомство с основами Django и лучшими практиками. Стоит отметить, что материалы книги используют современные версии фреймворка: Django 4.0 и Rest Framework 3.13
  6. YouTube канал Django School. Автор на практике понятным языком объясняет как работать с Django. На канале есть несколько плейлистов по полноценной пошаговой разработке веб‑приложений, включая сайт по поиску фильмов.

Я бы мог еще долго перечислять различные инструменты и технологии, которые могут понадобиться вам в работе. Например Docker или принцип работы веб‑серверов, вроде Nginx.

Чтобы понять, что нужно изучить дополнительно, обязательно собеседуйтесь. Так вы сможете понять свой текущий уровень, и что вам нужно подтянуть. А также увидеть, какие хард-скиллы от вас ждет рынок.

Мнение автора может не совпадать с мнением редакции.

Вы потратили на этот материал две минуты. Потратьте ещё 15 секунд, пожалуйста.

dev.by, как и другим честным медиа, сегодня очень сложно: редакция работает за пределами страны, а наши рекламные доходы сократились в несколько раз.

Но мы справляемся — с вашей помощью. Это вы делитесь с нами инфоповодами, мнениями, опытом, временем и вниманием. А 170 читателей поддерживают нас донатами.

В 2023 году мы хотим собрать 1000 читателей-подписчиков.

Помочь нам можно через Patreon. Сейчас средний чек — около 10$, но мы рады любой сумме.

В Беларуси Patreon заблокирован. Мы будем добавлять другие способы.

Спасибо, что прочитали это сообщение.

Что ещё почитать?

  • Найти работу в Европе ч.1. Как выбрать локацию и где искать? Личный опыт менеджера
  • Увайсці ў айці — з чаго пачаць? Пакрокавая інструкцыя ад HR-спецыялісткі
  • Как научиться тестировать самому и найти работу в трудные времена. Гид
  • Как быть успешным джуном и не завалить испытательный срок

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *