ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2023
Просмотров: 128
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
2
Тема 1. Основы языка Python
1.1. В
вод-вывод данных и применение арифметических операций
Ссылки на интерпретатор и среду программирования
Скачайте и установите необходимую версию Miniconda на
ПК: https://docs.conda.io/en/latest/miniconda.html
Для установки интерактивной среды разработки JupyterLab необходимо в командной строке Miniconda выполнить команду «conda install -c conda- forge jupyterlab» (рис. 1).
Рис. 1. Установка среды разработки JupyterLab
Если при попытке выполнения программного кода возникла ошибка об отсутствии какой-либо библиотеки, то ее необходимо установить с использованием командной строки Мiniconda. Например, библиотека
Matplotlib устанавливается командой: «conda install -c conda-forge matplotlib».
Запуск среды разработки JupyterLab осуществляется командой
«jupyter lab» (рис. 2).
Рис. 2. Запуск JupyterLab
Внешний вид среды разработки JupyterLab представлен ниже (рис. 3).
3
Рис. 3. Внешний вид среды разработки JupyterLab
Программный код в JupyterLab пишется с разделением по блокам.
Деление на блоки реализовано для удобства и не влияет на результат выполнения программы (рис. 4).
Рис. 4. Программный код в JupyterLab
Запуск на выполнение осуществляется с помощью пункта меню «Run all cells». Результат выполнения данного программного кода представлен ниже (рис. 5).
4
Рис. 5. Результат выполнения программного кода в JupyterLab
Язык Python
Язык Python (по-русски можно произносить Пайтон или Питон) появился в 1991 году и был разработан нидерландским программистом Гвидо ван Россумом. Язык назван в честь шоу «Летающий цирк Монти Пайтона».
Одна из главных целей разработчиков – сделать язык забавным для использования.
Сейчас Питон регулярно входит в десятку наиболее популярных языков и хорошо подходит для решения широкого класса задач: обучение программированию, создание скриптов для обработки данных, машинное обучение, серверная веб-разработка и многое другое. Большинству из обучающихся программированиюязык Питон потребуется для написания проектов и при изучении ряда предметов третьего курса, а также в повседневном быту для автоматизации задач обработки данных.
Мы будем изучать язык Питон третьей версии.
Типы данных и функции вывода
Программы на языке Питон представляют собой обычные текстовые файлы, в которых записана последовательность команд. Код легко читается и интуитивно понятен.
5
Например, выводящая
Hello, world! программа записывается всего в одну строку: вызывается функция печати print, которой в качестве параметра передается строка, содержащая в себе фразу
«
Hello, world!
»
. Если мы хотим задать какую-то строку, то должны обрамлять её одинарными (') или двойными (") кавычками, иначе она будет интерпретироваться как код на языке Питон (рис. 6).
Рис. 6. Использование функции вывода
Кроме строк, рассмотрим целочисленный тип данных. Например, можно посчитать результат вычисления арифметического выражения 2 + 3 и вывести его с помощью такой однострочной программы на языке Питон (рис.
7).
Рис. 7. Использование функции вывода
Такая программа выведет результат вычисления выражения, равный 5.
Если бы числа 2 и 3 были заключены в кавычки, то они интерпретировались бы как строки, а операция «+» проводила бы конкатенацию (склеивание) строк. Например, такой код выведет 23 – строку, состоящую из склеенных символов '2' и '3' (рис. 8).
6
Рис. 8. Использование функции вывода
Функция print может принимать и несколько параметров, тогда они будут выводиться через пробел, причем параметры могут иметь различные типы. Если мы хотим получить вывод вида 2 + 3 = 5, то можем воспользоваться программой, представленной на рис. 9.
Рис. 9. Использование функции вывода
Обратите внимание, что в строке '2 + 3 =' нет пробела после знака =.
Пробел появляется автоматически между параметрами функции print. Что же делать, если хочется вывести строку вида 2+3=5 (без пробелов)? Для этого понадобится именованный параметр sep (separator, разделитель) для функции print. Та строка, которая передается в качестве параметра sep, будет подставляться вместо пробела в качестве разделителя. В этой задаче мы будем использовать пустую строку в качестве разделителя. Пустая строка задается двумя подряд идущими кавычками (рис. 10).
Рис. 10. Использование функции вывода с использованием параметра sep
В качестве параметра sep можно использовать любую строку, в том числе состоящую из нескольких символов. Если нам нужно сделать несколько разных разделителей для разных частей строк, то не остается другого выбора, кроме как использовать несколько подряд идущих функций
7 print. Например, если мы хотим вывести строку вида 1 + 2 + 3 + 4 = 10, то можем попробовать воспользоваться кодом, представленным на рис. 11.
Рис. 11. Функция вывода с использованием параметра sep
Однако вывод такого кода нас огорчит. Он будет выглядеть так:
1 + 2 + 3 + 4
= 10
Это связано с тем, что после каждой функции print по умолчанию осуществляется перевод строки.
Для изменения того, что будет печататься после вывода всего, что есть в функции print, можно использовать именованный параметр end. В нашем случае после первого print мы не хотели бы печатать ничего. Правильный код представлен на рис. 12.
Рис. 12. Функция вывода с использованием параметров sep и end
В качестве end также можно использовать абсолютно любую строку.
Переменные и арифметические выражения
Переменные
В некоторых задачах удобно проводить вычисления, используя вспомогательные переменные. Например, в школьных формулах по физике было удобно вычислять не гигантское выражение целиком, а запоминая результаты вычисления во вспомогательные переменные. Для примера
8 решим задачу вычисления пройденного расстояния по известному времени и скорости (рис. 13).
Рис. 13. Использование переменных
В этой программе мы создаем три переменные: speed для скорости, time для времени и dist для вычисленного расстояния. При использовании переменных в арифметическом выражении просто используется значение, которое лежит в переменной.
Для присваивания значения переменной используется знак =. Имя переменной должно быть записано слева от знака присваивания, а арифметическое выражение (в котором могут быть использованы числа и другие уже заданные переменные) – справа. Имя переменной должно начинаться с маленькой латинской буквы, должно быть осмысленным
(английские слова или общеупотребимые сокращения) и не должно превышать по длине 10–15 символов. Если логичное имя переменной состоит из нескольких слов, то нужно записывать его с помощью camelTyping
(каждое новое слово, кроме первого, должно быть записано с большой буквы).
То, как осуществляется присваивание, подробнее будет описано ниже.
Арифметические выражения
Мы уже использовали в наших программах арифметические выражения, в частности операции + и *. Существует ряд других арифметических операций. Они приведены в табл. 1.
Таблица 1
Арифметические выражения
9
Знак
Операция
Операнд 1
Операнд 2
Результат
+
Сложение
11 6
17
–
Вычитание
11 6
5
*
Умножение
11 6
66
//
Целочисленное деление
11 6
1
%
Остаток от деления
11 6
5
**
Возведение в степень
2 3
8
Все операции инфиксные (записываются между операндами).
Например, для возведения 2 в степень 3 нужно писать 2**3.
Особо остановимся на операциях вычисления целой части и остатка от деления от числа.
Пусть заданы два числа A и B, причем B > 0. Обозначим как C целую часть от деления A на B: C = A // B. Обозначим как D остаток от деления A на B: D = A % B.
Тогда должны выполняться следующие утверждения:
A = B × C + D,
0
≤ D < B.
Эти утверждения необходимы для понимания процесса взятия остатка от деления отрицательного числа на положительное. Нетрудно убедиться, что если –5 разделить на 2, то целая часть должна быть равна –3, а остаток равен 1. В некоторых других языках программирования остатки в такой ситуации могут быть отрицательными, что неправильно по математическим определениям.
Если B < 0, выполняются следующие утверждения:
A = B × C + D,
B < D
≤ 0.
10
Например, при делении 11 на –5 мы получим целую часть, равную –3, а остаток будет равен –4.
Если же разделить –11 на –5, то целая часть будет равна 2, а остаток будет равен –1.
Обратите внимание, что целые числа в Питоне не имеют ограничений на длину (кроме объема доступной памяти).
Операции над строками
Строки также можно сохранять в переменные и использовать в некотором ограниченном количестве выражений. В частности, можно склеивать две строки с помощью операции + (рис. 14).
Рис. 14. Использование операций над строками
Складывать число со строкой (и наоборот) нельзя. Но можно воспользоваться функцией str, которая по числу генерирует строку. Str – это сокращение от слова «string», которое можно перевести на русский как
«строка, которая представляет собой последовательность символов».
Например, задачу про вывод 2 + 3 = 5 можно решить и способом, представленным на рис. 15.
Рис. 15. Использование операций над строками
Чтение данных
11
Можно умножить строку на целое неотрицательное число, в результате получится исходная строка, повторенная заданное число раз (рис. 16).
Рис. 16. Использование операций над строками
Программы, которые умеют только писать, но не умеют читать, редко представляют интерес для пользователей. Узнавать что-то из внешнего мира наши программы будут с помощью функции input(). Эта функция считывает строку из консоли. Чтобы закончить ввод строки, нужно нажать Enter. Под строкой в данном случае понимается английское слово «line», что означает
«строка, оканчивающаяся переводом строки». Если в такую программу ввести слово Python, то она напечатает «I love Python» (рис. 17).
Рис. 17. Использование функции input()
Во многих задачах нам требуется работать со введенными числами, а читать мы умеем только строки. Чтобы преобразовать строку, состоящую из цифр (и, возможно, знака «–» перед ними), в целое число, можно воспользоваться функцией int (сокращение от английского «integer» – «целое число»). Например, решение задачи о сложении двух чисел будет выглядеть, как на рис. 18.
12
Рис. 18. Использование функции input()
Функция int может быть применена не только к результату, возвращаемому функцией input, но и к произвольной строке.
В строках могут быть не только буквы, цифры и знаки препинания, но и, например, символы табуляции и перевода строки. Чтобы использовать эти символы в константной строке в коде программы, необходимо записывать их как \t и \n соответственно. Использование бэкслеша перед символом называется экранированием. Существуют и другие символы, которые требуют бэкслеша перед собой. Это, например, кавычки \' и \'' (использование бэкслеша просто необходимо, если в строке используются оба типа кавычек), а также собственно символ бэкслеша, который надо записывать как \\.
В случае считывания с помощью input символы в консоли экранировать не нужно.
Примеры решения задач
Рассмотрим несколько задач, решаемых с помощью арифметических операций, которые показывают некоторые идеи.
Пусть есть два товара, первый из них стоит A рублей B копеек, а второй – C рублей D копеек. Сколько рублей и копеек стоят эти товары вместе.
В задачах с несколькими размерностями величин (например, рубли и копейки, километры и метры, часы и минуты) следует переводить значения в наименьшую единицу измерения, осуществлять необходимые действия, а затем переводить обратно к нужным единицам.
В нашей задаче наименьшей единицей являются копейки, поэтому все цены следует перевести в копейки, сложить их, а затем перевести результат обратно в рубли и копейки. Код решения будет выглядеть, как на рис. 19.
13
Рис. 19. Пример решения задачи
Для определения количества рублей нужно разделить цену в копейках на 100 нацело, а для определения оставшегося числа копеек – посчитать остаток от деления на 100.
Следующая задача: Вася играет в Super Mario Bros очень хорошо. Он получил N дополнительных жизней. Известно, что переменная, в которой хранится количество жизней, может принимать значения от 0 до 255. Если было 255 жизней и игрок получил дополнительную жизнь, счетчик обнуляется. Сколько жизней на счетчике?
В этой задаче достаточно посчитать остаток от деления введенного числа на 256. Такие действия часто требуются, например, при работе со временем (при переходе через сутки счетчик времени обнуляется). Решение задачи выглядит, как на рис. 20.
Рис. 20. Пример решения задачи
Еще примеры решения задач
Следующая задача: вводится число N, необходимо «отрезать» от него
K последних цифр. Например, при N = 123456 и K = 3 ответ должен быть равен 123.
14
Для решения этой задачи нужно понять, что происходит при целочисленном делении на 10 (основание системы счисления). Если мы разделим число на 10, то будет отброшена последняя цифра, независимо от того, какой она была. Если разделим число на 100 – будет отброшено две последние цифры. Исходя из этого, получается решение задачи: необходимо просто разделить число N на 10 в степени K (рис. 21).
Рис. 21. Пример решения задачи
1.2. Логические выражения, ветвления и циклы при выполнении
операций над данными
Логический тип данных и операции
Логический тип данных
Кроме уже известных нам целочисленных и строковых типов данных, в
Питоне существует также логический тип данных, который может принимать значения «истина» (True) или «ложь» (False).
По аналогии с арифметическими выражениями существуют логические выражения, которые могут быть истинными или ложными. Простое логическое выражение имеет вид: <арифметическое выражение> <знак сравнения> <арифметическое выражение>. Например, если у нас есть переменные x и y с какими-то значениями, то логическое выражение x + y < 3
* y в качестве первого арифметического выражения имеет x + y, в качестве знака сравнения < (меньше), а второе арифметическое выражение в нём
3 * y.
В логических выражениях допустимы знаки сравнений, представленные в табл. 2.