Как начать программировать на python
Перейти к содержимому

Как начать программировать на python

  • автор:

 

The Python Tutorial¶

Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python’s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.

The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python web site, https://www.python.org/, and may be freely distributed. The same site also contains distributions of and pointers to many free third party Python modules, programs and tools, and additional documentation.

The Python interpreter is easily extended with new functions and data types implemented in C or C++ (or other languages callable from C). Python is also suitable as an extension language for customizable applications.

This tutorial introduces the reader informally to the basic concepts and features of the Python language and system. It helps to have a Python interpreter handy for hands-on experience, but all examples are self-contained, so the tutorial can be read off-line as well.

For a description of standard objects and modules, see The Python Standard Library . The Python Language Reference gives a more formal definition of the language. To write extensions in C or C++, read Extending and Embedding the Python Interpreter and Python/C API Reference Manual . There are also several books covering Python in depth.

This tutorial does not attempt to be comprehensive and cover every single feature, or even every commonly used feature. Instead, it introduces many of Python’s most noteworthy features, and will give you a good idea of the language’s flavor and style. After reading it, you will be able to read and write Python modules and programs, and you will be ready to learn more about the various Python library modules described in The Python Standard Library .

С чего начать изучение Python и как написать на нем первый код

С чего начать изучение Python и как написать на нем первый код главное изображение

Python — самый популярный язык программирования по данным индекса TIOBE на октябрь 2022 года. Востребованность Python можно объяснить тем, что его применяют во многих сферах: веб-разработка (чаще всего серверная часть), машинное обучение и анализ больших данных.

Также на Python создают:

  • Видеоигры
  • Десктопные приложения
  • 3D-графику
  • Программ для обработки изображений, видео и аудио.

В сфере мобильной разработки язык Python используют очень редко.

Python — высокоуровневый язык с динамической типизацией. Это значит, что код на нем прост для чтения и понимания, а разработка быстрая, так как Python сам классифицирует вводимые данные.

Посмотрите, как можно вывести на экран фразу «Hello, World!» в одну строчку с помощью одной понятной команды:

И как это можно сделать с помощью языка Java:

Python также известен своей философией — правилами, которые разработчики стараются соблюдать при написании кода. Они сформулированы в списке из 19 пунктов под названием «The Zen of Python». Вот несколько правил из этого списка:

  • Явное лучше, чем неявное
  • Простое лучше, чем сложное
  • Читаемость имеет значение.

У Python есть более сотни библиотек кода — наборов инструментов для решения программистских задач. Также есть много фреймворков: возможно, вы что-то слышали о Django, Pyramid или Flask. Каждый из этих инструментов можно освоить, чтобы выйти на новый уровень программирования на Python.

Python применяют для создания и поддержания своих продуктов такие компании, как Google, Yandex, Spotify, Microsoft, Pinterest, Quora, Intel и другие.

Читайте также: Программирование на Python: особенности обучения, перспективы, ситуация на рынке труда

С чего начать изучение языка Python

Определитесь с целью

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

Разберитесь в синтаксисе языка

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

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

Вот примерный список тем, которые нужно изучить и понять перед тем, как начать кодить на Python:

  1. Строки — как их выводить, извлекать из них символы
  2. Переменные и типы — для чего они нужны, как облегчают разработку
  3. Операторы — какие они бывают в Python и как работают
  4. Условия — что такое условные конструкции и как их задавать
  5. Циклы — для чего нужны и как использовать
  6. Структуры данных — для чего используют, сколько всего структур и какие они бывают
  7. Функции — в чем особенность, как их вызывать и где искать документацию по ним
  8. Классы и объекты — что это такое и как они обозначаются.

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

Изучите основы Python на Хекслете Запишитесь на подготовительный курс, чтобы изучить основы языка и попробовать программирование на практике. Следующий поток стартует 9 ноября.

Ознакомьтесь с документацией

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

Как начать программировать на Python

Установите среду разработки

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

Среда разработки помогает разработчику ориентироваться в коде и искать в нем ошибки. Самые популярные IDE для Python: Python IDLE, PyCharm, Spyder, Thonny.

Еще можно установить редактор кода — это более легковесная программа, аналог текстовых редакторов. Она сохраняет проекты в правильном расширении, автоматически проверяет отступы в коде и подсвечивает синтаксис. Самые популярные редакторы кода для Python: Visual Studio Code, Sublime Text, Vim.

Также существует онлайн-IDE, с помощью которой можно писать код на Python прямо в браузере. Replit подойдет для первого знакомства с Python и создания небольших проектов.

Решайте задачи

Существует много разных сайтов, на которых питонисты выкладывают и решают задачи по Python. Это, например:

Платформа Kaggle подойдет для тех, кто выбрал для дальнейшего развития сферу машинного обучения. На ней проходят групповые соревнования, где организаторы дают разные задачи по Data Science. Участники решают задачи с помощью языка Python. Лучшие решения можно будет положить в портфолио.

Участвуйте в играх

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

В какие игры можно поиграть:

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

Сколько времени нужно, чтобы выучить Python

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

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

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

Читайте также: Как я 10 лет проектировал мосты, а в 33 года стал Python-разработчиком в банке

Полезные материалы для изучения Python

Есть много хороших книг по изучению Python. Будет здорово, если вы прочитаете некоторые из них:

  • Пол Бэрри «Изучаем программирование на Python»
  • Марк Лутц «Изучаем Python»
  • Эрик Мэтиз. Изучаем Python. Программирование игр, визуализация данных, веб-приложения».

Также у Хекслета есть свой список рекомендованной литературы. Ознакомьтесь с этими книгами — они полезны для программистов любых направлений.

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

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

Станьте востребованным Python-разработчиком На Хекслете есть обучение по профессии Python-разработчика. Пройдите его, чтобы изучить Python и фреймворк Django, разобраться в алгоритмах и структурах данных, а также получить поддержку от менторов и единомышленников.

Введение в Python

В данной статье мы затронем основы Python. Мы все ближе и ближе к цели, в общем, скоро приступим к работе с основными библиотеками для Data Science и будем использовать TensorFlow (для написания и развертывания нейросетей, тобишь Deep Learning).

Установка

Python можно скачать с python.org. Однако если он еще не установлен, то вместо
него рекомендую дистрибутивный пакет Anaconda, который уже включает в себя большинство библиотек, необходимых для работы в области науки о данных.

Если вы не используете дистрибутив Anaconda, то не забудьте установить менеджер пакетов pip, позволяющий легко устанавливать сторонние пакеты, поскольку некоторые из них нам понадобятся. Стоит также установить намного более удобную для работы интерактивную оболочку IPython. Следует учитывать, что дистрибутив Anaconda идет вместе с pip и IPython.

Пробельные символы

Во многих языках программирования для разграничения блоков кода используются
фигурные скобки. В Python используются отступы:

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

и легко читаемого кода:

Для продолжения оператора на следующей строке используется обратная косая черта, впрочем, такая запись будет применяться редко:

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

в стандартную оболочку Python вызовет ошибку:

потому что для интерпретатора пустая строка свидетельствует об окончании блока кода с циклом for.

Оболочка IPython располагает «волшебной» функцией %paste, которая правильно вставляет все то, что находится в буфере обмена, включая пробельные символы.

Модули (Импортирование библиотек)

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

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

Здесь re — это название модуля, содержащего функции и константы для’ работы с регулярными выражениями. Импортировав таким способом весь модуль, можно обращаться к функциям, предваряя их префиксом re.

Если в коде переменная с именем re уже есть, то можно воспользоваться псевдонимом модуля:

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

Например, при визуализации данных на основе модуля matplotlib для него обычно
используют следующий стандартный псевдоним:

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

Функции

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

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

Кроме того, можно легко создавать короткие анонимные функции или лямбда выражения:

Лямбда-выражения можно присваивать переменным. Однако рекомендуют пользоваться оператором def:

Параметрам функции, помимо этого, можно передавать аргументы по умолчанию, которые следует указывать только тогда, когда ожидается значение, отличающееся от значения по умолчанию:

Иногда целесообразно указывать аргументы по имени:

В дальнейшем функции будут использоваться очень часто.

Строки

Символьные строки (или последовательности символов) с обеих сторон ограничиваются одинарными или двойными кавычками (они должны совпадать):

Обратная косая черта используется для кодирования специальных символов. Например:

Если требуется непосредственно сама обратная косая черта, которая встречается
в именах каталогов в операционной системе Windows, то при помощи r ‘»‘ можно создать неформатированную строку:

Многострочные блоки текста создаются при помощи тройных одинарных (или
двойных) кавычек:

Исключения

Когда что-то идет не так, Python вызывает исключение. Необработанные исключения приводят к непредвиденной остановке программы. Исключения обрабатываются при помощи операторов try и except:

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

Списки

Наверное, наиважнейшей структурой данных в Python является список. Это просто упорядоченная совокупность (или коллекция), похожая на массив в других языках программирования, но с дополнительными функциональными возможностями.

Устанавливать значение и получать доступ к n-му элементу списка можно при помощи квадратных скобок:

Помимо этого, квадратные скобки применяются для «нарезки» списков:

В Python имеется оператор ln, который проверяет принадлежность элемента списку:

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

Списки легко сцеплять друг с другом:

Если нужно оставить список х без изменений, то можно воспользоваться сложением списков:

Обычно к спискам добавляют по одному элементу за одну операцию:

Нередко бывает удобно распаковать список, если известно, сколько элементов в нем содержится:

Если с обеих сторон выражения число элементов не одинаково, то будет выдано сообщение об ошибке ValueError.

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

Кортежи

Кортежи — это неизменяемые (или иммутабельные) двоюродные братья списков.

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

Кортежи обеспечивают удобный способ для возвращения из функций нескольких значений:

Кортежи (и списки) также используются во множественном присваивании:

Словари


Словарь или ассоциативный список — это еще одна основная структура данных.

В нем значения связаны с ключами, что позволяет быстро извлекать значение, соответствующее конкретному ключу:

Доступ к значению по ключу можно получить при помощи квадратных скобок:

При попытке запросить значение, которое в словаре отсутствует, будет выдано сообщение об ошибке KeyError:

Проверить наличие ключа можно при помощи оператора in:

Словари имеют метод get(), который при поиске отсутствующего ключа вместо вызова исключения возвращает значение по умолчанию:

Присваивание значения по ключу выполняется при помощи тех же квадратных скобок:

Словари часто используются в качестве простого способа представить структурные
данные:

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

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

Словарь defaultdict

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

Кроме этого, можно воспользоваться nриемом под названием «лучше просить прощения, чем разрешения» и перехватывать ошибку при попытке обратиться к отсутствующему ключу:

Третий прием — использовать метод get(), который изящно выходит из ситуации с отсутствующими ключами:

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

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

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

Словарь Counter


Подкласс словарей counter трансформирует последовательность значений в похожий на словарь defaultdict(int) объект, где ключам поставлены в соответствие частотности или, выражаясь более точно, ключи отображаются (map) в частотности.

Он в основном будет применяться при создании гистограмм:

Его функционал позволяет достаточно легко решить задачу подсчета частотностей слов:

Словарь counter располагает методом most_common( ), который нередко бывает полезен:

Множества


Структура данных set или множество представляет собой совокупность неупорядоченных элементов без повторов:

Множества будут использоваться по двум причинам. Во-первых, операция in на множествах очень быстрая. Если необходимо проверить большую совокупность элементов на принадлежность некоторой последовательности, то структура данных set подходит для этого лучше, чем список:

Вторая причина — получение уникальных элементов в наборе данных:

Множества будут применяться намного реже словарей и списков.

Управляющие конструкции

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

Кроме того, можно воспользоваться однострочным трехместным оператором if-then-else, который будет иногда использоваться в дальнейшем:

В Python имеется цикл whlle:

Однако чаще будет использоваться цикл for совместно с оператором in:

Если требуется более сложная логика управления циклом, то можно воспользоваться операторами

В результате будет напечатано 0, 1, 2 и 4.

Истинность


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

Для обозначения несуществующего значения применяется специальный объект None, который соответствует значению null в других языках:

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

  • False; .
  • None;
  • set() (множество):
  • [] (пустой список);
  • <> (пустой словарь);

Вот более простой способ сделать то же самое:

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

Встроенная функция all языка Python берет список и возвращает True только тогда, когда каждый элемент списка истинен, а встроенная функция any возвращает тrue, когда истинен хотя бы один элемент:

Питон для начинающих с нуля: изучаем Python дома

Как выучить самому Python или любой другой язык программирования? Такой вопрос возникает у тех, кто впервые решил погрузиться в сферу IT.

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

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

Где используется Python и почему

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

 

К типичным областям использования Python относят:

  • Веб-разработка (сайты любой сложности и функциональности без проблем создаются при помощи данного языка);
  • Работа с базами данных (можно работать как с «встроенной» sqlite3, так и любыми другими – реляционными и нереляционными);
  • Графические приложения (реально не просто писать исполняемые скрипты, но и разрабатывать полноценные графические интерфейсы под свои нужды);
  • Научные задачи (сложные вычисления, машинное обучение, нейронные сети);
  • Сетевое программирование (включает не только взаимодействие с сайтами, но и почтовыми сервисами, JSON-объектами, Интернет-протоколами);
  • Бизнес-приложения и игровая индустрия (ERP-системы, непрерывная разработка и тестирование, простые игры).

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

Основные показаны ниже (рис. 1).

Сильные стороны языка Python

Сильные стороны языка Python

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

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

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

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

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

Кроссплатформенность в дополнение ко всему гарантирует достижение идентичных результатов что на Windows, Linux, MacOS, так и на мобильных системах.

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

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

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

Отметим, также, ключевые плюсы и минуса Питона (таблица 1).

Плюсы Минусы
Легко изучать, писать и читать код Относительно медленный
Интерпретируемый (исполняет код на лету) Не всегда эффективно расходует память
Динамически типизированный Ограничен в мобильной разработке
С открытым исходным кодом При исполнении могут возникать ошибки, что требует тщательного тестирования
Имеет широкую поддержку

Таблица 1 – Сильные и слабые стороны Python’a

Установка и подготовка среды

Чтобы начать программировать на Питоне, требуется совершить 2 шага:

  1. Установить последний релиз Python (скачивается с официального сайта https://www.python.org/downloads/);
  2. Загрузить программу для разработки (для новичков лучше всего подойдет PyCharm версии Community – https://www.jetbrains.com/ru-ru/pycharm/download/).

В нашем бесплатном руководстве по Python мы будем пользоваться только этим функционалом. Его достаточно, чтобы самому дома с нуля разобраться в Питоне.

Чтобы создать свой первый проект запускаем PyCharm и выбираем меню File -> New Project. Проверяем, чтобы в поле Base Interpreter стояла самая новая версия Питона.

Python реализован Гвидо ван Россумом в 1991 году. Несколько раз Питон признавался языком года (даже в 2020 году). Сегодня он применяется не только в среде средних и мелких разработчиков, но и в таких мировых компаниях как Google, Instagram, Facebook. Название языка происходит не от змеи, как часто думают новички, а от британского шоу «Летающий цирк Монти Пайтона».

Теперь в папке проекта можно создать файл с расширением «.py», в котором и будет писаться код. Чтобы запустить скрипт, нажимаем либо зеленую кнопку «Run», либо выбираем ее же через правую кнопку мыши. Внизу PyCharm при этом откроется окно консоли, отражающее итог и ход работы программы.

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

Чтобы проверить, что все установлено успешно и вы не напутали ничего в настройках, идем в панель терминала (внизу) и пишем там команду «python -V». Она отобразит версию Python, которая была проинсталлирована на компьютер.

В случае, если операционная система отличается от Windows, то команда будет выглядеть так: «python3 -V» (это связано с тем, что в UNIX-подобных ядрах по умолчанию включена более старая версия языка – 2.7. Так как она больше не поддерживается, рекомендуется работать с третьей – 3.9 или выше).

Начало работы в Питоне

Первое, что делают при изучении любого языка программирования, – вывод в консоль популярного сообщения «Hello world». Немного поменяем вывод, и в пустом файле скрипта напишем следующую команду:

Print – встроенная в Python функция, которая выводит на печать переданное в нее сообщение. Запуск скрипта отобразит в терминале соответствующую фразу.

Еще одна полезная команда – input. Она позволяет как бы общаться с пользователем при помощи консоли. Исполним следующий код:

Функция input приостанавливает исполнение скрипта до тех пор, пока пользователь не введет свой ответ. Сначала в консоли потребуется представиться, а потом передать свой возраст. И лишь потом в терминале отобразится сообщение: «Рад знакомству!».

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

Обсудим базовый синтаксис языка Python:

  1. Любая часть кода отделяется от предыдущей переводом на новую строку (не нужно никаких точек с запятой в конце);
  2. Отступы внутри блоков кода (о них пойдет речь дальше) задаются 4-мя пробелами;
  3. Создаваемые функции и объекты отделяются друг от друга двумя пустыми строчками.

Даже если вы и забудете о сказанном, PyCharm вам напомнит: он подчеркнет синтаксические ошибки, даст подсказки по используемым функциям. Это не просто удобно, но и экономит массу времени.

Данная фраза от создателя языка свидетельствует о том, что Питон в своем синтаксисе максимально прозрачен.

Переменные в Python

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

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

Пример плохих или неверных наименований:

  • abswqw – не понятно, какой смысл у данной переменной;
  • 12Q – имена не могут начинаться с цифры;
  • myname – два слова, не отделенные нижним подчеркиванием;
  • nomer_telefona – не нужно транслита, следует использовать английские слова, чтобы ваш код понял программист из любой точки планеты.
  • name – понятно и отражает суть;
  • birth_year – используем змеиную нотацию.

Реализуем простую задачу для новичков на Питоне, которая иногда встречается на собеседованиях!

Получим от пользователя следующие сведения: его имя и страну, в которой бы он хотел побывать. Выведем на печать сообщение: «Доброго дня, <ИМЯ>. <СТРАНА>– интересная страна!». А после этого продемонстрируем пользователю еще одну фразу: «Было приятно с вами поболтать, <ИМЯ>».

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

Чтобы передать в функцию print переменную вместе с текстом, удобно пользоваться так называемыми f-строками. Синтаксис следующий: print(f’Вы передали переменную ’).

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

Числа в Питоне и операции с ними

Далее поговорим о типах данных. Начнем с чисел. В этом курсе мы затронем два их типа: целые и числа с плавающей точкой. Из названия понятно, что они подразумевают. Есть и другие: комплексные, десятичные, дробные (в Питоне они различаются).

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

Результат работы скрипта:

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

Целочисленное деление обозначается как «//». Оно отбрасывает остаток. Деление по модулю подразумевает отображение только остатка и обозначается «%». Возведение в степень записывается двумя звездочками.

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

  • ­­float – приводит число к типу с плавающей точкой;
  • int – преобразует число в целое (отбрасывает все числа после запятой);
  • type – показывает тип переменной.

Результат работы скрипта:

При помощи type мы убедились, что первое число – целое, а второе – с плавающей точкой. А две другие функции позволили преобразовать данные к нужному типу.

Строки (тип данных string)

Строка – еще один тип данных в языке Python. Они записываются в одинарных или двойных кавычках. В нашем бесплатном гайде рассмотрим следующие операции с ними:

  • Конкатенация (сложение);
  • Дублирование (умножение);
  • Доступ по индексу;
  • Определение длины.

Конкатенация подразумевает объединение строк. При помощи же знака умножения можно строку продублировать несколько раз.

Результат работы скрипта:

Операция «day += day» делает следующее: берет старую переменную, добавляет к ней некоторое значение (в нашем случае – ее же саму) и записывает полученный результат под тем же именем. Данная операция часто используется с числами (для умножения, сложение, деления и т.п.).

Строка является перебираемым (итерируемым) объектом. К каждому отдельному ее элементу можно получить доступ. Для этого используются индексы. Индекс первого элемента равен нулю (а остальные – по возрастанию). Можно пойти с конца: тогда последний элемент имеет индекс «-1», а оставшиеся – по убыванию.

Более того, с помощью индексов можно делать срезы: брать некоторую часть строки. Также, предусмотрен шаг среза (по умолчанию равен единице).

Например, нам требуется взять строку начиная с 3-го элемента и заканчивая 15-ым с шагом 2. Это значит следующее: делаем срез с 3-го элемента по 16-ый (он не включается), а из этого промежутка берем не каждый символ, а только четные.

Результат работы скрипта:

Запись quote[:5] подразумевает срез от начала строки до 5-го элемента (не включая его). Инструкция quote[::-1] говорит о срезе от начала до конца строки, с шагом -1, т.е. в обратном направлении. Это самый простой способ развернуть написанную фразу.

Так как к символам строки можно обращаться по индексу, то у нее есть некоторая длина. Узнать ее просто – применяем функцию len.

Результат работы скрипта:

Можете проверить сами, что в данной строке 26 символов (с учетом пробелов).

Булевы операции

Булев тип данных и операции сравнения используются в любом языке программирования. Здесь мы работаем с двумя значениями: истина (True) или ложь (False). Сравнение переменных осуществляется следующими операторами:

Результат работы скрипта:

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

  • AND (логическое И) – проверяет верность обеих частей выражения;
  • OR (логическое ИЛИ) – проверяет верность одной из частей выражения;
  • NOT (логическое НЕ) – обращает значение, возвращает обратную логическую величину.

Проще всего понять их на основании следующей таблицы (табл. 2).

Первое выражение Второе выражение AND OR
True True True True
True False False True
False True False True
False False False False

Таблица 2 – Логические операторы в Python

Условные выражения

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

Например, на сайт заходит пользователь: если ему больше 18 лет, то ему показываются все темы, а если меньше – то только некоторые. Для таких случаев используется инструкция «if…elif…else». Она может состоять из 1, 2 или более вариантов ветвления.

Рассмотрим на практике.

Результат работы скрипта:

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

В нашем случае какой-то шутник сказал, что ему -5 лет, поэтому мы его предупредили, что так делать не стоит. Конечно, в идеале стоит сделать защиту и от дробных чисел, а также от другого неподходящего типа данных.

Результат работы скрипта:

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

Списки, кортежи, множества и словари

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

Особенности показаны в таблице 3.

Список (list) Кортеж (tuple) Множество (set) Словарь (dict)
Изменяемый Неизменяемый Изменяемое Изменяемый
Значения могут дублироваться Значения могут дублироваться Значения не могут дублироваться Ключи не могут дублироваться
Доступ по индексу возможен Доступ по индексу возможен Доступ по индексу невозможен Есть доступ к ключам и значениям

Таблица 3 – Коллекции данных в Python

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

Рассмотрим часть функционала.

Результат работы скрипта:

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

На их основании также возможны срезы, доступ по индексу, нахождение максимума или минимума (если элементы представлены числами), поиск количества вхождений значений.

Результат работы скрипта:

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

Результат работы скрипта:

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

Рассмотрим некоторые операции со словарями.

Результат работы скрипта:

Таким образом, в зависимости от ситуации применяется тот или иной тип коллекций. Чаще всего это списки и словари.

Циклы for, while в Питоне

Выше упоминалось, что ряд объектов Питона является итерируемым. Это значит, что элементы этой сущности можно перебирать. Для этого в том числе нужны циклы (особенно for).

Конструкция цикла for представлена следующим образом:

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

Для понимания рассмотрим примеры.

Результат работы скрипта:

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

Результат работы скрипта (нижеследующее выведется 2 раза):

Цикл while требует условие выхода, так как в противном случае может выполняться бесконечно. Хоть может и показаться, что эта бесконечность не нужна, в ряде случаев без нее никак: например, показывать окно программы до тех пор, пока пользователь ее не закрыл.

Реализуем следующую задумку: выведем все числа от 50 до 100 включительно, которые делятся на 7, но не делятся на 2.

Результат работы скрипта:

Всего таких числа 3. Важно не забыть на каждой итерации увеличивать исходное число, иначе оно никогда не станет равным 100.

Функции

Очень часто встречается, что один и тот же кусок кода необходимо использовать в разных местах. Дублирование – плохая практика, ведущая к ошибкам и сложностям изменений. В таких ситуациях на помощь приходят функции.

Чтобы создать функцию, перед ее именем следует написать ключевое слово def, а также обозначить параметры, если таковые есть. Выше мы уже встречали некоторые из них, которые встроены в Python (sum, print, input).

Ничто не мешает создать свои. Важно учесть и то, что функция всегда что-то возвращает (после ключевого слова return), хоть return и не обязателен (тогда вернется None, т.е. «ничто»).

Структура функции следующая:

Создадим функцию, которая в зависимости от возраста пользователя будет выводить его статус. Если ему меньше 10 лет – то вернем сообщение «Ребенок», если от 10 до 16 – «Подросток», если от 16 до 20 – «Юноша», если от 20 до 35 – «Молодой человек», если от 35 до 45 – «Мужчина», если от 45 до 55 – «Солидный мужчина», если от 55 до 70 – «Зрелый ум», если от 70 до 120 – «Познавший смыслы». В любом другом случае предупредим пользователя: «Такого возраста не бывает».

Результат работы скрипта:

Теперь в нашей программе можно использовать данную функцию множество раз с разными аргументами.

Модули, библиотеки, import

Язык Python хорош тем, что в него встроено большое количество модулей и библиотек по умолчанию. Более того, их можно дополнительно установить из официального репозитория при помощи команды «pip install название_модуля» в терминале проекта.

Модули (один файл) и библиотеки (несколько файлов с обязательным наличием документа __init__.py) расширяют возможности программистов и упрощают работу. Не нужно создавать велосипед заново, так как его уже кто-то сделал ранее для вас. Нужно лишь им воспользоваться, чтобы добраться из точки А в точку Б.

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

Итак, в стандартном наборе модулей имеется random, используемый для работы со случайными числами и генерацией оных, выборкой рандомных значений и т.п. Дополнительных установок не потребуется.

Перечислим все способы абсолютного импортирования в Питоне:

Общий импорт

Результат работы скрипта:

Сначала указываем модуль, а потом функцию через точку.

Импорт всех объектов (не рекомендуется, но не запрещен)

Результат работы скрипта:

Модуль указывать не требуется.

Импорт конкретной функции

Результат работы скрипта:

Модуль указывать не надо, но остальные его функции и переменные недоступны.

Импорт функции с переименованием

Результат работы скрипта:

Импорт модуля с переименованием

Результат работы скрипта:

Работа с файлами

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

Попробуем сгенерировать 10 случайных целых чисел от 1 до 100 и записать их в текстовый файл «random.txt», а затем выведем их на печать в консоль из этого документа.

Нам понадобится контекстный менеджер with и функция open, а также знакомая функция print, которая умеет заносить данные в файл.

Познакомимся с двумя режимами работы open: «r» — чтение, «w» – запись.

Итак, контекстный менеджер with автоматически закрывает файл после своей работы (чтобы он не оставался в памяти).

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

Функция print может принимать дополнительный аргумент file, в котором указывается файл на запись.

Метод readlines считывает содержимое документа и формирует из его строк список, по которому мы проходимся. Так как в текстовом файле у нас есть переносы (они появились благодаря функции print, которая при каждом вызове начинает вывод с новой строки), их удобнее удалить с помощью метода strip, примененного к каждой строке.

Изучаем Python: куда дальше?

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

Какие темы освоить в первую очередь? Приводим список тем и команд для новичков:

  • типы данных в Python;
  • необязательные и ключевые аргументы функций (*args, **kwargs), лямбда-выражения (lambda);
  • объекты и классы, инициализация;
  • основные встроенные модули (functools, math, string, sys, os, collections, time);
  • генераторы и итераторы (yield, iter);
  • работа с разными файлами (csv, изображения, текст);
  • исключения и ошибки (exceptions);
  • списковые включения (list comprehension);
  • работа с сетью (requests, BeautifulSoup).

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

Потом стоит переходить к серьезным трудам (типа М. Лутца), ознакомлению с популярными фреймворками и библиотеками (Django, flask, pandas).

 

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

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