ПРОГРАММИРОВАНИЕ НА PYTHON

Аннотация

Python — это интерпретируемый язык программирования высокого уровня, известный своей простотой, читабельностью и универсальностью. Понятие “интерпретируемый язык” означает, что код выполняется построчно без необходимости компиляции.
Синтаксис языка ясен и выразителен: для определения блоков кода используются отступы, а не фигурные скобки или ключевые слова.
Он динамически типизирован, что позволяет объявлять переменные без явного указания типов данных. Тип переменной определяется во время выполнения.
Python поставляется с обширной стандартной библиотекой, которая предоставляет модули и функции для широкого спектра задач, включая файловый ввод-вывод, работу в сети, манипулирование строками, сжатие данных и многое другое.
Python поддерживает несколько парадигм программирования, включая процедурное, объектно-ориентированное и функциональное программирование.
Популярность языка Python продолжает расти благодаря его универсальности, простоте изучения и широкой применимости в различных областях. Часто этот язык выбирают как новички, так и опытные разработчики, и его популярность не показывает никаких признаков снижения.

Оглавление

Введение _ 4
Глава 1. Первые программы на языке Python _ 7
1.1. Общие сведения _ 7
1.2. Установка Python на компьютер _ 9
1.3. Установка среды  программирования PyCharm и создание первой программы _ 13
1.4. Переменные _ 22
      1.4.1. Строковые переменные _ 22
            1.4.1.1. Операции с элементами строки _ 23
            1.4.1.2. Объединение строк _ 27
            1.4.1.3. Методы для работы с текстом строки _ 28
      1.4.2. Числовые переменные _ 29
            1.4.2.1. Типы числовых переменных _ 29
            1.4.2.2. Преобразование типов _ 30
      1.4.3. Вывод переменных _ 32
      1.4.4. Ввод переменных с клавиатуры _ 35
1.5. Операторы и операнды _ 37
      1.5.1. Арифметические операторы _ 38
      1.5.2. Операторы присваивания _ 38
      1.5.3. Побитовые операторы _ 39
      1.5.4. Операторы принадлежности _ 40
      1.5.5. Операторы тождественности _ 41
1.6. Сравнительный анализ программ на Python и С _ 41
Упражнения для самостоятельной работы _ 45
Глава 2. Функции _ 48
2.1. Встроенные функции _ 48
      2.1.1 Базовые функции _ 48
      2.1.2. Подключаемые модули _ 49
            2.1.2.1. Математические функции. Модуль math _ 49
            2.1.2.2. Случайные числа. Модуль random _ 52
2.2. Пользовательские функции _ 54
      2.2.1. Функции без возвращаемого значения _ 55
      2.2.2. Функция с возвращаемым значением _ 57
Упражнения для самостоятельной работы _ 60
Глава 3. Условные операторы и циклы _ 64
3.1. Условные операторы _ 64
3.2. Циклы _ 68
      3.2.1. Цикл while _ 68
      3.2.2. Цикл for _ 72
3.3. Отладка программ _ 76
      3.3.1. Точки останова. Пошаговое выполнение _ 76
      3.3.2. Try…Except _ 81
Упражнения для самостоятельной работы _ 84
Глава 4. Списки и кортежи _ 89
4.1. Списки _ 89
      4.1.1. Создание списка _ 89
      4.1.2. Методы для работы со списками _ 90
      4.1.3. Округление чисел в списке _ 96
4.2. Кортежи _ 96
Упражнения для самостоятельной работы _ 99
Глава 5. Работа с файлами _ 102
5.1. Чтение из файла _ 102
5.2. Запись в файл _ 105
5.3. Работа с текстовыми файлами _ 110
5.4. Поиск информации в файле _ 118
Упражнения для самостоятельной работы _ 119
Глава 6. Построение графиков _ 121
6.1. Построение 2D графиков _ 121
6.2. Построение столбчатых и круговых диаграмм _ 129
6.3. Построение 3D графиков _ 131
Упражнения для самостоятельной работы _ 133
Глава 7. Объектно-ориентированное программирование _ 138
7.1 Классы и объекты _ 138
7.2 Конструкторы и деструкторы _ 141
7.3 Наследование _ 145
7.4. Специальные методы _ 146
8. Прикладное программирование – создание простейшего Телеграм-бота _ 149
9. Решения и ответы _ 157
9.1. Решения к главе 1 _ 157
9.2. Решения к главе 2 _ 160
9.3. Решения к главе 3 _ 166
9.4. Решения к главе 4 _ 174
9.5. Решения к главе 5 _ 180
9.6. Решения к главе 6 _ 183
Литература _ 193 

Введение

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

Read more …

Глава 1. Первые программы на языке PYTHON

1.1. Общие сведения

Python (правильное произношение Пайтон, но в отечественной литературе можно также встретить Питон) – высокоуровневый язык программирования общего назначения. Версия Python 2.0 была выпущена в 2000 году, а первая обратно-несовместимая версия Python 3.0 – в 2008 году. Сейчас используются различные релизы версии Python 3.0. Основной упор в Python делается на быстроту написания кода, а не на быстроту его выполнения, как например в языках С/C++. Поэтому в первую очередь Python удобно использовать там, где нужно оперативно написать работающую программу. Например, это важно для бизнеса или стартапа, когда надо быстро выпустить продукт и начать зарабатывать. Часто Python используется для анализа данных, как в науке, так и коммерческой сфере. Этому способствуют простота языка и большое разнообразие имеющихся стандартных библиотек. Другая область применения — системное администрирование и разработка прикладного программного обеспечения.

Read more …

1.2. Установка Python на компьютер

Будем устанавливать Python версии 3.9. На момент написания учебного пособия (середина 2022 года) версия 3.9 является предпоследней версией. Работоспособность этой версии многократно проверена, подтверждена и очищена от разного рода багов, которые могут встречаться в последней версии. Но версии языка постоянно обновляются и, возможно, через некоторое время будет целесообразно устанавливать другую версию Python.

Рис. 1.1

Заходим на сайт https://www.python.org (рис. 1.1) и скачиваем соответствующий дистрибутив Python. Запускаем на установку скачанный файл. Начинается установка. Появляется окно, показанное на рис. 1.2.

Рис. 1.2

Проставляем галочку около опции Add Python 3.9 to PATH и выбираем опцию Install Now (установка по умолчанию).

Рис. 1.3

Помимо интерпретатора Python будет установлена IDLE (интегрированная среда разработки), pip (пакетный менеджер), документация, а также будут созданы соответствующие ярлыки и установлены связи файлов, имеющие расширение .py с интерпретатором Python. В конце процесса установки появляется окно, показанное на рис. 1.3.

Чтобы удостоверится, что Python правильно установился и работает, запускаем командную строку Windows. Для этого в поиске Windows набираем cmd и нажимаем Enter. Запускается командная строка, в которой набираем команду python -V, и нажимаем Enter. Если все сделано правильно, система отобразит версию Python, как показано на рис. 1.4.

Рис. 1.4

Теперь все готово, чтобы уже начать писать простенькие программы на Python. Давайте запустим интегрированную среду программирования IDLE и напишем программу вычисления корней квадратного уравнения
2*x**2+5*x+2=0
(В Python операция умножения обозначается одной звёздочкой, возведение в степень – двумя звёздочками). Запускаем IDLE. Для этого в поисковой строке Windows набираем IDLE, как показано на рис. 1.5. Нажимаем Enter и появляется интерфейсное окно, показанное на рис. 1.6. Три угловых стрелочки (>>>) означают приглашение к вводу кода программы. Набираем в этом окне текст программы, нажимаем Enter и получаем результат: x1 = –0.5; x2 = –2.0. 

Рис. 1.5

Рис. 1.6

Программировать в Python на IDLE – это не самый лучший выбор. Гораздо удобнее и эффективнее использовать для этого интегрированную среду программирования PyCharm. В дальнейшем, все программы в данном учебном пособии написаны на PyCharm. Установка PyCharm на компьютер подробно рассмотрена в следующем подразделе.

1.3. Установка среды программирования PyCharm и создание первой программы

Все программы создаются, как правило, в интегрированной среде программирования, которая позволяет не только написать код программы на языке высокого уровня, в нашем случае на Python, но и провести компиляцию и отладку программы и запустить программу на выполнение. Для Python одной из самых популярных, востребованных и профессиональных является среда программирования PyCharm. Давайте установим PyCharm на компьютер. Для этого переходим на сайт www.jetbrain.com и скачиваем бесплатную версию PyCharm Community (рис. 1.7). На момент написания учебного пособия – это Version: 2022.1.2.

Рис. 1.7

После скачивания запускаем файл pycharm-community-2022.1.2.exe. В процессе установки появляется окно (рис. 1.8), в котором проставляем во всех квадратиках галочки. Нажимаем Next. В других появляющихся окнах оставляем всё по умолчанию.

Рис. 1.8

После окончания установки перезагружаем компьютер.
В результате установки на рабочем столе появится иконка PyCharm. Щелкнем по ней и запустим программу. В появившемся окне щелкнем по кнопке New Project. Появится новое окно (рис. 1.9).

Рис. 1.9

Создадим папку, где будут храниться проекты Python. Для этого последовательно выполним следующие операции. Щелкнем вначале по значку, выделенному на рис. 1.9 овалом с цифрой 1. Появится дополнительное окошко, в котором вначале выберем диск C (можно выбрать другой диск, если он есть на вашем компьютере) и затем щелкнем по значку, выделенному овалом с цифрой 2. В следующем появившемся окошке укажем название папки, например, Python_Projects, помечено овалом с цифрой 3. Название папки задаём на английском языке без пробелов. После этого жмём OK –> OK –> Create. На диске C будет создана папка Python_Projects и внутри этой папки будет автоматически создана другая папка venv (venv – virtual environment) – виртуальное окружение проекта, и на экране монитора появится интерфейсное окно программы PyCharm. Начальный цвет фона окна – темный. Для изменения цвета фона выбираем опции File –> Settings –> Appearance и установим тему Windows 10 Light.
Интерфейсное окно программы представлено на рис. 1.10. Это окно состоит из нескольких областей:
I – область файлов проекта (дерево проекта)
II – область набора и редактирования листинга Python-программы
III, IV – дополнительные окна для инструментов программы. Доступные инструменты перечислены под этими окнами. В частности, имеется инструмент Terminal (выделено овалом с цифрой 1), с помощью которого можно запустить командную строку.

Рис. 1.10.

Овалом с цифрой 2 выделен инструмент – Python Console. С помощью этого инструмента можно протестировать отдельные блоки общей большой программы.
В верхней части интерфейсного окна (рис. 1.10) расположены меню и панель инструментов, а в самом низу окна находится строка состояния.
При первоначальной установке PyCharm в окне II автоматически отобразится код программы main.py, которая выводит сообщение Hi, PyCharm. Если запустить программу (нажать сверху в панели инструментов на зеленый треугольник), то область III автоматически развернётся на всю ширину окна и в ней появится результат работы программы (выделено овалом на рис. 1.11):
Hi, PyCharm
Запустить программу можно также через опции меню: Run –> Run… –> main

Рис. 1.11

Давайте создадим и запустим свой файл. Для этого в дереве проектов щелкнем правой кнопкой мыши по названию корневой папки – Python_Projects и в выпадающих окнах выберем опции New –> Python File.
В появившемся окошке (рис. 1.12) зададим имя нового файла, например, test и нажмём Enter.

Рис. 1.12

В дереве проектов слева появится вновь созданный файл test.py. Наберем в области редактирования (область II) код программы нового файла. Пусть это будет повтор программы по вычислению корней квадратного уравнения, представленной в параграфе 1.2 на рис. 1.6.
a=2
b=5
c=2
D=b**2-4*a*c
x1=(-b+D**(0.5))/(2*a)
x2=(-b-D**(0.5))/(2*a)
print(x1,x2)
Чтобы запустить новый файл на выполнение, выбираем опции меню Run –> Run… Появится окошко, показанное на рис. 1.13, в котором вместо файла main выбираем файл test и нажимаем Enter.

Рис. 1.13

Выполнится файл test.py и в нижней области интерфейсного окна получим результат выполнения программы (рис. 1.14):
–0.5 –2.0

Рис. 1.14

1.6. Сравнительный анализ программ на Python и C

Сравнительный анализ двух языков программирования: Python и C (Си), поможет вам лучше понять характерные особенности и отличительные признаки языка Python. В качестве примера программы для сравнительного анализа рассмотрим программу для вычисления корней квадратного уравнения:
Корни квадратного уравнения вычисляются по формуле:
Выражение
называется дискриминантом. Если D больше нуля, то существуют два действительных корня, если D равен нулю, то существует один действительный корень, и если D меньше нуля, то действительных корней не существует.
Коэффициенты квадратного уравнения (a, b, с) будем вводить с клавиатуры.
В области редактора интерфейсного окна PyCharm наберём код программы:

#import math
#Ввод переменных с клавиатуры
a=float(input(‘Введите а:’))
b=float(input(‘Введите b:’))
c=float(input(‘Введите c:’))
D=pow(b,2)-4*a*c
if D<0:
   print(‘Действительных корней не существует’)
if D==0:
      x=-b/(2*a)
      print(round(x,2))
if D>0:
      x1=-b+math.sqrt(D)/(2*a)
      x2=-b-math.sqrt(D)/(2*a)
      print(‘x1=’,round(x1,2))
      print(‘x2=’,round(x2,2))

Запустим программу на исполнение.
В нижней части интерфейсного окна будут последовательно появляться приглашения для ввода переменных. Введем а=1, b=2, с=-4. Получим результат: x1 = 0.24; x2 = – 4.24 (рис. 1.24).

Рассмотрим построчно листинг программы.
В первой строке (рис. 1.24) импортируется модуль math, который позволяет использовать в программе математические константы и математические функции. Модуль math представляет собой стандартную библиотеку, которая входит в состав программного обеспечения языка Python. Конкретно в данной программе модуль math используется в 13 и 14 строках при вычислении квадратных корней. При этом сначала пишется math и затем через точку записывается математическая функция.
Во второй строке – комментарий. 
В третьей, четвертой и пятой строках присутствуют функции ввода данных с клавиатуры.
В шестой строке вычисляется дискриминант.
В седьмой, девятой, двенадцатой строках записаны заголовки условных операторов. За заголовком следует тело условного оператора, которое может состоять из одной или нескольких строк. Чтобы показать, какие строки относятся к конкретному условному оператору, их сдвигают на несколько позиций (как правило, на четыре) относительно начала строки.
В десятой, тринадцатой, четырнадцатой строках вычисляются корни квадратного уравнения.
В одиннадцатой, пятнадцатой, шестнадцатой строках – печать корней квадратного уравнения. 
Чтобы более наглядно отобразить базовые принципы и особенности программы на языке Python, приведём сравнительный анализ программы на Python и аналогичной программы на языке С.
Программа вычисления корней квадратного уравнения на языке С:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
system(“chcp 1251”);
system(“cls”);
float a, b, c, x, x1, x2, D;
//Ввод переменных с клавиатуры
printf(“Введите a: “);
scanf(“%f”, &a);
printf(“Введите b: “);
scanf(“%f”, &b);
printf(“Введите c: “);
scanf(“%f”, &c);
D=pow(b,2)-4*a*c;
if (D<0)
printf(“Действительных корней не существует”);
if (D==0)
{
x=-b/(2*a);
printf(“x= %f”,x);
}
if (D>0)
{
x1=-b+sqrt(D)/(2*a);
x2=-b-sqrt(D)/(2*a);
printf(“x1= %.2f\n”,x1);
printf(“x2= %.2f\n”,x2);
}
return 0;
}

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

Таблица 1.3 (щелкнуть по таблице для увеличения)

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

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

Подпишись на телеграм-канал:  https://t.me/algorithms_and_life и скачай учебное пособие “Программирование на Python” –  БЕСПЛАТНО