Skip to content

shox-py/topic_2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2. Консольные операции

img.svg

Вступление

Добро пожаловать во вторую тему, в которой вы освоите основы работы с консолью!

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


Содержание:


Арифметические операторы

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

Чтобы научиться работать с арифметическими операторами, мы можем использовать интерактивный режим.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

Подытожим работу операторов // и %.

  • Оператор // - используется, чтобы получить целую часть от деления, игнорируя остаток.
  • Оператор % - позволяет узнать остаток от деления, при этом целая часть не учитывается.

Оба оператора полезны в различных ситуациях и их задачи всегда разные.

Таблица 2.1: Арифметические операторы в Python

Оператор Название Объяснение Примеры
+ Сложение Суммирует два объекта 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

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


Функция print()

Эта функция используется для вывода данных в консоль. Она может выводить различные типы данных, такие как числа, строки и другие объекты. В большинстве языков программирования для вывода, данных требуется привести их к строковому виду. но в 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 лет.

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

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


Параметры sep и end

Откроем вам небольшой секрет, где-то в файлах языка 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("Вывод двойных кавычек \"Вы станете отличным разработчиком\"")
Вывод двойных кавычек "Вы станете отличным разработчиком"

Таблица 2.2: Управляющие символы

Некоторые из наиболее распространенных управляющих и экранирующих символов в Python.

Символ Название
\n Символ новой строки
\r Возврат каретки
\t Горизонтальная табуляция
\b Возврат на одну позицию назад (удаление символа)
\f Смена страницы
\v Вертикальная табуляция
\ Обратная косая черта (экранирование)

Закллючение

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

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


Практические задания для самостоятельной работы.

  • Постарайтесь использовать только те знания, которые были изучены в пройденных темах. Не стоит использовать конструкции, такие как f-строки т.п., если мы ещё не разбирали их.
  • Убедитесь, что удалили все лишние комментарии из вашего кода.
  • Рекомендуем решить все задания самостоятельно.

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


Полезные ссылки


Footnotes

  1. Интерактивный режим - это режим, в котором введённые с клавиатуры операторы сразу же выполняются и результат выводится на экран (в консоль).

  2. Аргумент - это значение, которое передается функции при ее вызове.

  3. Параметр - это переменная, указанная в определении функции, которая хранит значение, переданное при вызове.

Releases

No releases published

Packages

No packages published

Languages