Добро пожаловать во вторую тему, в которой вы освоите основы работы с консолью!
Здесь вы научитесь выполнять арифметические операции, выводить информацию в консоль, а также познакомитесь с различными разделителями и управляющими символами, которые помогут вам эффективно форматировать вывод.
Арифметические операторы - это незаменимый инструмент в программировании, который позволяет нам проводить математические вычисления. Они позволяют выполнять базовые арифметические операции, как сложение, вычитание, умножение, деление и т.д.
Чтобы научиться работать с арифметическими операторами, мы можем использовать интерактивный режим.1.
Чтобы запустить интерактивный режим, нужно открыть командную строку (терминал) и ввести команду:
- для Linux/MacOS:
python3
- для Windows:
py
илиpython
После запуска интерпретатора в терминале вместо стандартного приглашения ОС появится
>>>
Вы можете проверить результаты следующих выражений:
Пример:
>>> 2 + 3
5
>>> 10 - 3
7
>>> 6 * 4
24
>>> 10 / 2
5.0 # в результате операции деления всегда получаем дробное значение
Кроме базовых арифметических операций, также доступны другие операторы.
**
- позволяет возводить число в указанную степень.
Пример:
>>> 2 ** 3
8
>>> 7 ** 4
2401
Вспомним правило для возведения отрицательного числа в степень:
- Если степень четная, результат будет положительный.
- Если степень нечетная, результат будет отрицательный.
Пример:
>>> (-2) ** 3
-8
>>> (-2) ** 2
4
Почему число, которое возводится в степень, обернули в скобки?
- Если бы мы пробовали запустить выражение
-2 ** 2
, то получили бы -4. Это поведение связано с приоритетом операций в Python. Оператор**
имеет более высокий приоритет, чем оператор-
. Поэтому выражение-2 ** 2
интерпретируется как-(2 ** 2)
, т.е. сначала выполняется возведение2
в степень2
, и только потом к результату применяется знак минус. В результате получаем-4
а не4
, как можно было бы ожидать.- Чтобы избежать такой путаницы, оборачиваем число, которое возводится в степень, в скобки
(-2) ** 2
. Это гарантирует, что Python сначала возведёт именно-2
в указанную степень, а не просто применит минус к результату возведения.Более подробно о приоритетах узнаете в четвертой теме.
//
- возвращает результат деления, округленный вниз до ближайшего целого числа.
Пример:
>>> 15 // 2
7
>>> 99 // 6
16
>>> -15 // 2
-8
>>> -99 // 6
-17
Напомню правило для отрицательных чисел: например,
-25
меньше, чем-4
.Тогда при операции
-15 / 2
в обычном делении получится-7.5
, а оператор//
отбрасывает дробную часть и округляет результат вниз до ближайшего целого числа, в нашем случае до-8
.
Пример из жизни:
- Представьте, что вы собираетесь устраивать вечеринку и хотите сделать пакеты с подарками для своих друзей.
У вас есть
20
конфет, и вы хотите упаковать их в пакеты по3
штуки. Сколько полных пакетов вы сможете сделать?-
Ответ: 6 пакетов.
>>> 20 // 3 6
Здесь мы используем оператор
//
, чтобы получить количество полных пакетов. Остаток нас не интересует.
-
Другой пример:
-
Извлечение первой цифры числа: Допустим у вас есть число
789
. Чтобы получить первую цифру, вы делите это число на100
, используя//
.>>> 789 // 100 7
Результат -
7
, потому что при делении789
на100
, получается7.89
, а оператор//
отбрасывает дробную часть и оставляет только целую часть7
. И вы можете интерпретировать это по-разному, что100
в числе789
- это целых7
раз. Главное, чтобы вы понимали, как работает оператор.
Пример:
>>> 4567 // 1000
4
>>> 27 // 10
2
>>> 8 // 10
0
%
- возвращает остаток от деления двух чисел.
Пример:
>>> 7 % 2
1
>>> 10 % 2
0
>>> 45 % 9
0
>>> 17 % 6
5
Пример из жизни:
Теперь давайте поговорим про остаток. В примере с оператором //
нас интересовала только целая часть. А оператор %
помогает узнать, сколько осталось после деления.
- Возьмем тот же пример с конфетами: у вас есть
20
конфет, и вы делите их на пакеты по3
конфеты. Сколько конфет не поместилось в эти пакеты?-
Ответ:
2
конфеты.>>> 20 % 3 2
Здесь мы используем оператор
%
, чтобы узнать остаток от деления. Нас интересует только остаток, целая часть нам не важна.
-
Другой пример:
-
Оператор
%
полезен в различных задачах, например, проверка четности числа, получение последней цифры числа и т.д.-
Получение последней цифры числа: Допустим, у вас есть число
789
. Чтобы узнать последнюю цифру числа, вы делите это число на10
, используя%
>>> 789 % 10 9 >>> 4567 % 10 7 >>> 27 % 10 7 >>> 8 % 10 8
-
Подытожим работу операторов //
и %.
- Оператор
//
- используется, чтобы получить целую часть от деления, игнорируя остаток. - Оператор
%
- позволяет узнать остаток от деления, при этом целая часть не учитывается.
Оба оператора полезны в различных ситуациях и их задачи всегда разные.
Оператор | Название | Объяснение | Примеры |
---|---|---|---|
+ |
Сложение | Суммирует два объекта | 3 + 5 даст 8 ; 'a' + 'b' даст 'ab' |
- |
Вычитание | Даёт разность двух чисел; если первый операнд отсутствует, он считается равным нулю | -5.2 даст отрицательное число, а 50 - 24 даст 26 |
* |
Умножение | Даёт произведение двух чисел или возвращает строку, повторённую заданное число раз. | 2 * 3 даст 6 . 'la' * 3 даст 'lalala' |
/ |
Деление | Возвращает частное от деления x на y |
4 / 3 даст 1.3333333333333333 |
** |
Возведение в степень | Возводит x в степень y |
3 ** 4 даст 81 (т.е. 3 * 3 * 3 * 3 ) |
// |
Целочисленное деление | Возвращает неполное частное от деления | 4 // 3 даст 1 . |
% |
Деление по модулю | Возвращает остаток от деления | 8 % 3 даст 2 . -25.5 % 2.25 даст 1.5 |
Вы можете использовать скобки для изменения порядка выполнения операций, как в обычных математических выражениях. Попробуйте придумать свои собственные примеры, используя различные арифметические действия, чтобы лучше понять материал.
Эта функция используется для вывода данных в консоль. Она может выводить различные типы данных, такие как числа, строки
и другие объекты. В большинстве языков программирования для вывода, данных требуется привести их к строковому виду. но
в Python эта задача решается автоматически функцией print()
. Рассмотрим примеры вывода различных типов данных.
Пример:
>>> print("Привет, мир!")
Привет, мир!
>>> print(-15)
-15
>>>print(6.6743)
6.6743
Мы можем передавать несколько значений сразу, чтобы каждый раз не писать функцию print()
.
В таком случае значения будут выведены через пробел на одной строке:
Пример:
>>> print("Привет, мир!", -15, 6.6743)
Привет, мир! -15 6.6743
Переданные значения в функцию называются аргументами2.
В примере выше мы передали три аргумента в функцию print()
. Аргументы в функции перечисляются через запятую.
Пример:
>>> x = -56
>>> print("Значение x =", x)
Значение x = -56
>>> pi = 3.14
>>> print("Значение pi =", pi)
Значение pi = 3.14
>>> name = "Иван"
>>> age = 25
>>> print("Меня зовут", name, "и мне", age, "лет.")
Меня зовут Иван и мне 25 лет.
Не бойтесь экспериментировать, попробуйте выводить разные типы данных, даже целые стихотворения.
Полезно записывать технические термины, которые вы встречаете в темах, это поможет вам освоить язык программистов.
Со временем вы будете свободно использовать термины аргументы
, параметры
, функции
и др.
Откроем вам небольшой секрет, где-то в файлах языка Python есть строки кода самой функции print()
, которые сейчас
могут показаться вам непонятными, но не переживайте, в конце обучения вы будете полностью понимать, как это работает.
Вот код самой функции print()
def print(self, *args, sep=' ', end='\n', file=None):
pass
Обратите внимание на параметры3 sep
и end
, которым установлены значения по умолчанию:
пробел для sep
и символ перевода строки для end
. Мы можем изменить это поведение, чтобы между
перечисленными аргументами был не пробел, а другой символ.
Например, можно использовать символ вертикальной палочки |
(его также называют пайп)
Пример:
>>> print(7, 14, 21, 28, sep="|")
7|14|21|28
После последнего аргумента не выводится вертикальная палочка, потому что это поведение регулируется параметром end
.
Изменим его так, чтобы вместо символа новой строки \n
в конце был другой символ, который мы могли видеть.
Пример:
>>> print(7, 14, 21, 28, sep="|", end="@")
7|14|21|28@
Надеюсь, теперь вам понятно, как работают параметры sep
и end
.
- Параметр
sep
можно назвать разделитель аргументов - Параметр
end
можно назвать концом строки или символом, который будет выведен после последнего аргумента. Главное, чтобы вы поняли суть.
Прочитаем ниже приведенный код на человеческом языке, чтобы лучше понять термины параметр и аргумент:
Пример:
>>> print(10, 20, sep="!", end=";")
Функция print()
вызывается с аргументами 10
и 20
. Для параметра sep
передается аргумент "!"
, который
будет использоваться в качестве разделителя между значениями. Для параметра end
передается аргумент ";"
, который
определяет символ, который будет выведен в конце, вместо стандартного символа новой строки \n
.
Управляющие символы - это специальные символы, которые используются для вставки управляющих последовательностей в строку. Они позволяют управлять форматированием текста и его выводом.
Например, вы наверняка не раз использовали клавиши
Enter
,Tab
,Backspace
и др. в текстовых редакторах. Эти клавиши влияют на текст, но они невидимы в самом документе. На уровне программирования мы не можем нажимать на такие клавиши, поэтому вместо них используются управляющие специальные символы. Если вам интересно, что такое кодировки и для чего они нужны, настоятельно рекомендуем почитать об этом дополнительно.
Одним из наиболее часто используемых управляющих символов является символ перевода строки \n
. Он используется
для вставки разрыва строки, создает новую строку в выводе или тексте, например, в консоли, файле или строке.
Пример:
>>> print("Привет,\nмир!")
Привет,
мир!
Символ \r
- это возврат каретки. Он перемещает курсор в начало строки. В отличие от символа \n
, который
начинает новую строку, символ \r
не переносит курсор на новую строку, а просто перемещает его в начало текущей.
Пример:
>>> print("Привет, мир\rPython")
Python
Обратите внимание, что символы после \r
перезаписывают начало строки.
Это может быть полезно, например, для создания прогресс-бара или для вывода анимации.
Символ \b
- это возврат на одну позицию назад. Он используется для удаления предыдущего символа в строке.
Когда символ \b
встречается в строке, он перемещает курсор на одну позицию назад, но сам символ при этом
не удаляется. Это позволяет перезаписать или стереть символ.
Пример:
>>> print("Hello world\b")
Hello
worl
В этом примере, символ \b
перемещает курсор на одну позицию назад, и результатом будет вывод строки Hello worl
,
без последней буквы d
.
Важно отметить, что символ \b
работает только в тех средах, где поддерживается перемещение курсора влево и
вправо (напр., в консоли или терминале). В других типах вывода, таких как файлы или сетевые соединения,
этот символ не имеет эффекта.
Если вам нужно вывести специальные символы, такие как кавычки "
или '
, символ новой строки \n
,
табуляции \t
или любые другие управляющие символы, необходимо использовать экранирование.
Для этого ставится обратная косая черта \
перед специальным символом.
Пример:
>>> print("Символ новой строки \\n, символ косой черты \\, символ табуляции \\t")
Символ новой строки \n, символ косой черты \, символ табуляции \t
>>> print("Вывод двойных кавычек \"Вы станете отличным разработчиком\"")
Вывод двойных кавычек "Вы станете отличным разработчиком"
Некоторые из наиболее распространенных управляющих и экранирующих символов в Python.
Символ | Название |
---|---|
\n |
Символ новой строки |
\r |
Возврат каретки |
\t |
Горизонтальная табуляция |
\b |
Возврат на одну позицию назад (удаление символа) |
\f |
Смена страницы |
\v |
Вертикальная табуляция |
\ |
Обратная косая черта (экранирование) |
В этой теме мы изучили работу арифметических операторов, базовые операции в консоли, а также вывод данных с
помощью функции print()
. Мы также рассмотрели параметры sep
и end
, а также управляющие символы,
которые используются для форматирования вывода.
В следующей теме мы познакомимся с объявлением и использованием переменных. Также разберемся, что такое объекты и как они связаны с переменными.
Практические задания для самостоятельной работы.
- Постарайтесь использовать только те знания, которые были изучены в пройденных темах. Не стоит использовать конструкции, такие как f-строки т.п., если мы ещё не разбирали их.
- Убедитесь, что удалили все лишние комментарии из вашего кода.
- Рекомендуем решить все задания самостоятельно.
Если возникнут трудности, не стесняйтесь обратиться за помощью в наш Телеграм-чат. Чтобы перейти к заданиям, кликните на заголовок Задания или нажмите сюда.
- Stepik: Работа с целыми числами
- Wikipedia: Управляющие символы
- Hexlet: Что такое кодировки
- Habr: Как работают кодировки текста
Footnotes
-
Интерактивный режим - это режим, в котором введённые с клавиатуры операторы сразу же выполняются и результат выводится на экран (в консоль). ↩
-
Аргумент - это значение, которое передается функции при ее вызове. ↩
-
Параметр - это переменная, указанная в определении функции, которая хранит значение, переданное при вызове. ↩