Операции с данными

Арифметические операции, операции сравнения, логические операции.

Содержание:

  1. Что такое Оператор?
  2. Операции с данными в Python
  3. Практика

Теория

Note

Мы уже затрагивали операторы в прошлой теме (02.02 - Переменные и Типы данных), сейчас в неё углубимся

Что такое Оператор?

Note

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

Операторы работают как действия, которые мы выполняем над данными. Например:

  • Арифметические операторы: +, -, *, /(сложение, вычитание, умножение, деление).
  • Сравнительные операторы: ==, !=, >, < (проверка равенства, неравенства, больше или меньше).
  • Логические операторы: and, or, not (используются для логических выражений) Поймите что так оператор есть, рассмотрим его в будущих темах (например, в 02.06 - If else).

Пример использования оператора:

 
a = 10
b = 5
result = a + b  # Использование оператора сложения
 

Операции с данными в Python

Note

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


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

Note

Арифметические операции позволяют выполнять математические расчеты с числами.

  • Сложение (+): Складывает два числа.
  • Вычитание (-): Вычитает одно число из другого.
  • Умножение (*): Умножает два числа.
  • Деление (/): Делит одно число на другое, результат — всегда вещественное число.
  • Целочисленное деление (//): Деление с округлением результата до ближайшего меньшего целого числа.
  • Остаток от деления (%): Возвращает остаток от деления.
  • Возведение в степень (**): Возводит число в заданную степень.

Примеры:

summ = 10 + 5             # 15
difference = 10 - 5       # 5
product = 10 * 5          # 50
quotient = 10 / 5         # 2.0
floor_division = 10 // 3  # 3
remainder = 10 % 3        # 1
power = 10 ** 2           # 100
'''
В переменную запишется результат, который дан напротив в комментарии. Переменная не будет хранить в себе запись в виде выражения, а только лишь его результат! Переменная будет соответствовать типу данных результату выражения
'''
 
print("Привет, " + "мир!")  # Выведет: Привет, мир!
print("повтор" * 3)  # Выведет: повторповторповтор
 

Tip

Кстати любые выражение можно писать прямо в print(), внутри круглых скобок

n = 5 + 2
print(n)

Тоже самое можно сделать как:

print(5+2)

или

n = 4
print(n+2)

Example

Повторите эти операции и выведите в терминал результаты их выполнения

  • Попробуй выполнить выражение прям внутри print()

Арифметические операции с присвоением

Note

Ряд специальных операций позволяют присвоить результат операции первому операнду:

+= Присвоение результата сложения

-= Присвоение результата вычитания

*= Присвоение результата умножения

/= Присвоение результата от деления

//= Присвоение результата целочисленного деления

**= Присвоение степени числа

%= Присвоение остатка от деления

Примеры операций:

number = 10
number += 5
print(number)  # 15
 
number -= 3
print(number)  # 12
 
number *= 4
print(number)  # 48

Example

Повторите эти операции и выведите в терминал результаты их выполнения


Операции сравнения

Note

Операции сравнения используются для сравнения двух значений и возвращают логическое значение (True или False).

  • Равно (==): Проверяет, равны ли два значения.
  • Не равно (!=): Проверяет, не равны ли два значения.
  • Больше (>), Меньше (<), Больше или равно (>=), Меньше или равно (<=): Сравнивают два значения.

Примеры:

is_equal = 5 == 5      # True
is_not_equal = 5 != 2  # True
is_greater = 5 > 3     # True
is_less = 5 < 3        # False
 
'''
при попытке вывести значение, например print(is_equal), мы получим в ответе булевое значение, True или False
'''

Example

Повторите эти операции и выведите в терминал результаты их выполнения

Операции сравнения с None

Note

Для проверки значения на None обычно используется оператор сравнения is или is not, а не == или !=. Это обеспечивает точное сравнение с None

result = None
print(result is None)     # True
print(result is not None) # False

Example

Повторите эти операции и выведите в терминал результаты их выполнения


Логические операции

Note

Логические операции позволяют комбинировать логические значения и условия.

  • И (and): Возвращает True, если оба условия истинны.
  • ИЛИ (or): Возвращает True, если хотя бы одно из условий истинно.
  • НЕ (not): Инвертирует логическое значение.

Примеры:

number_one = 22
number_two = 58
result = number_one > 21 and number_two == 58
print(result)  # True
 
'''
В данном случае оператор and сравнивает результаты двух выражений:
1. number_one > 21
2. number_two == 58
И если оба этих выражений возвращают True, то оператор and также возвращает True
Если хотя бы одно из выражений будет False - то оператор and вернет False
'''

Так же мы можем делать различные операции внутри при передаче аргументов внутрь функции. Рассмотрим на примере print()

# Сложение
print("10 + 5 =", 10 + 5)
'''
Внутрь принта можно подавать данные (аргументы) через запятую
Например строку, число, переменную, выражение
'''
 
# Равно
print("5 == 5:", 5 == 5)
 
# И (AND)
print("True and False:", True and False)
  • Больше примеров по логическим операциям. Желательно их посмотреть дабы убедиться, что ясен принцип их работы.

    '''Логическое И (AND)'''
    print(True and True)  # Выведет: True
    print(True and False)  # Выведет: False
    print(False and True)  # Выведет: False
    print(False and False)  # Выведет: False
     
    '''Логическое ИЛИ (OR)'''
    print(True or True)  # Выведет: True
    print(True or False)  # Выведет: True
    print(False or True)  # Выведет: True
    print(False or False)  # Выведет: False
     
    '''Логическое НЕ (NOT)'''
    print(not True)  # Выведет: False
    print(not False)  # Выведет: True
     
    '''Комбинирование логических операций'''
    # Комбинируем AND и OR
    print((True or False) and (False or False))  # Выведет: False

Example

Повторите эти операции и выведите в терминал результаты их выполнения


Утверждения (ASSERT)

Note

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

Определение и использование assert

Note

assert — это инструкция для проверки условий, которая помогает обеспечить корректность работы программы.

Note

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

Пример 1: Проверка, что число положительное:

number = 10
assert number > 0
'''Если number положительное, программа продолжит работу
иначе выполнение программы прервется
'''

Пример 3: Проверка истинности выражения

is_valid = True
assert is_valid
'''В этом примере assert используется для проверки, 
что значение переменной is_valid истинно'''

Синтаксис с сообщением об ошибке

assert условие, "Сообщение об ошибке"

Tip

Если условие ложно, программа прерывается, и вы увидите сообщение об ошибке, которое вы указали

Возьмем предыдущий пример и сделаем так, чтобы assert “упал”:

number = 10
assert number < 0

Note

В терминале будет следующее сообщение:

assert number < 0 AssertionError

Теперь попробуем добавить сообщение об ошибке и посмотрим как это будет выглядеть:

number = 10
assert number < 0, f"Ожидается, что {number} будет меньше 0"

Note

В терминале мы увидим следующее:

assert number < 0, f"Ожидается, что {number} будет меньше 0"

AssertionError: Ожидается, что 10 будет меньше 0


Зачем использовать?

Note

В последствии когда мы будем писать автотесты, наши тесты смогут проходить либо успешно, либо “падать” (завершаться с ошибкой). Как раз таки именно эти проверки - наш основной инструмент для проверки логики.

Note

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


Практическое задание 🧪

  1. По всему пройденному материалу заполнить миру
  2. Выполнить практические задания в модулях
  3. Прочесть дополнительно документацию: [По желанию] https://pylessons.readthedocs.io/ru/latest/basics/types.html#id2 Пункты 1.1 1.2 1.3 1.3.1
    1. 👩🏼‍🦰Операции с булевыми значениями (boolean):

    Логическое И — оператор and

Note

Возвращает True, если оба значения истинны. a = True b = False print(a and b) # Выведет: False

- Практика:
    

Example

В папке Data types → В папке boolean создайте файл boolean_and_operator.py.


Описание темы: Логическое И — оператор and

Оператор and в Python используется для проверки, являются ли обе стороны выражения истинными (True). Он возвращает True, если оба условия истинны, и False, если хотя бы одно из условий ложно.

Пример:

 
is_sunny = True
is_warm = True
can_go_to_beach = is_sunny and is_warm
print(can_go_to_beach)  # Выведет: True
 

Задания:

  • **Задание 1
    1. Создайте две переменные: has_ticket и has_passport. Присвойте им значения True или False.
    2. Создайте переменную can_board_plane, которая будет True только если обе переменные has_ticket и has_passport равны True.
    3. Выведите результат can_board_plane.
  • **Задание 2
    1. Создайте переменные is_adult и has_permission и присвойте им значения True или False.
    2. Создайте переменную can_access_content, которая будет равна True только если is_adult и has_permission оба равны True.
    3. Измените значения переменных и проверьте, как это влияет на can_access_content.
  • **Задание 3
    1. Напишите программу, которая содержит в себе 2 переменной с числами
    2. Проверьте, оба ли числа больше 10, и выведите результат. Используйте оператор and для проверки.
    3. Объясните, что произойдёт, если хотя бы одно из чисел меньше или равно 10.

Результаты выполнения:

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

### Логическое ИЛИ — оператор `or`

Note

Возвращает True, если хотя бы одно из значений истинно. a = True b = False print(a or b) # Выведет: True

- Практика:
    

Example

В папке Data types → В папке boolean создайте файл boolean_or_operator.py.


Описание темы: Логическое ИЛИ — оператор or

Оператор or в Python проверяет, является ли хотя бы одна сторона выражения истинной (True). Он возвращает True, если хотя бы одно из условий истинно, и False, если оба условия ложны.

Пример:

 
is_weekend = True
is_holiday = False
can_sleep_in = is_weekend or is_holiday
print(can_sleep_in)  # Выведет: True
 

Задания:

**Задание 1

  1. Создайте две переменные: is_raining и has_umbrella. Присвойте им значения True или False.
  2. Создайте переменную can_go_outside, которая будет True если либо is_raining равно False, либо has_umbrella равно True.
  3. Выведите результат can_go_outside.

**Задание 2

  1. Создайте переменные is_hungry и has_snack и присвойте им значения True или False.
  2. Создайте переменную can_eat_now, которая будет равна True если is_hungry или has_snack равно True.
  3. Измените значения переменных и проверьте, как это влияет на can_eat_now.

**Задание 3

  1. Напишите программу, которая принимает от пользователя два числа.
  2. Проверьте, больше ли первое число 50 или второе число меньше 30, и выведите результат. Используйте оператор or для проверки.
  3. Измените введённые числа и проверьте, как это влияет на результат.
### Логическое НЕ — оператор `not`

Note

Возвращает True, если значение ложно, и наоборот. a = True print(not a) # Выведет: False

- Практика:
    

Example

В папке Data types → В папке boolean создайте файл boolean_not_operator.py.


Описание темы: Логическое НЕ — оператор not

Оператор not в Python инвертирует логическое значение. Если выражение истинно (True), not сделает его ложным (False), и наоборот.

Пример:

is_open = True
is_closed = not is_open
print(is_closed)  # Выведет: False
 

Задания:

**Задание 1

  1. Создайте переменную is_logged_in и установите значение True или False.
  2. Создайте переменную needs_login, которая будет равна True, если is_logged_in равно False. Используйте оператор not.
  3. Выведите результат needs_login.

**Задание 2

  1. Создайте переменную is_empty, которая обозначает, что контейнер пуст, и установите значение True или False.
  2. Создайте переменную has_items, которая будет равна True, если is_empty равно False. Используйте оператор not.
  3. Проверьте результат has_items, выводя его на экран.
### Проверка равенства — оператор `==`

Note

Проверяет, равны ли два значения. Возвращает True, если значения совпадают. x = 5 y = 5 print(x == y) # Выведет: True

- Практика:
    

Example

В папке Data types → В папке boolean создайте файл boolean_equality_check.py.


Описание темы: Проверка равенства — оператор ==

Оператор == в Python проверяет, равны ли два значения. Если значения равны, возвращается True, иначе — False.

Пример:

a = 5
b = 5
print(a == b)  # Выведет: True

Задания:

**Задание 1

  1. Создайте переменные age1 и age2 со значениями возраста двух людей.
  2. Проверьте, равны ли значения age1 и age2 с помощью оператора == и assert.
  3. Выведите результат проверки.

**Задание 2

  1. Создайте две переменные password1 и password2 с разными строковыми значениями пароля.
  2. Проверьте, совпадают ли значения password1 и password2, используяassert и ==.
  3. Выведите результат проверки на экран.

**Задание 3

  1. Попробуйте сравнить 1 и True - Выведите результат при помощи print()
### Проверка неравенства — оператор `!=`

Note

Проверяет, не равны ли два значения. Возвращает True, если значения различаются. x = 5 y = 3 print(x != y) # Выведет: True

- Практика:
    

Example

В папке Data types → В папке boolean создайте файл boolean_inequality_check.py.


Описание темы: Проверка неравенства — оператор !=

Оператор != в Python проверяет, не равны ли два значения. Если значения различаются, возвращается True, иначе — False.

Пример:

a = 5
b = 10
print(a != b)  # Выведет: True

Задания:

**Задание 1

  1. Создайте переменные number1 и number2 с различными числовыми значениями.
  2. Проверьте, не равны ли значения number1 и number2, используя assert и оператор !=
  3. Выведите результат проверки

**Задание 2

  1. Сделай переменную с числовым значением > 0
  2. В print() передай в качестве аргумента выражение, где переменная будет сравниваться с False путем оператора !=
### Сравнение с числовыми значениями — `<`, `>`, `<=`, `>=`

Note

Операторы <, >, <=, >= позволяют сравнивать числовые значения и возвращают булевы значения. python x = 10 y = 20 print(x < y) # Выведет: True print(x >= y) # Выведет: False

- Практика:
    

Example

В папке Data types → В папке booleanсоздайте файл integer_comparisons.py.


Описание темы: Сравнение числовых значений

В Python можно использовать операторы сравнения для проверки отношений между числами. Основные операторы:

  • > — больше
  • < — меньше
  • >= — больше или равно
  • <= — меньше или равно

Эти операторы возвращают True или False, в зависимости от результата сравнения.

Пример:

a = 15
b = 10
print(a > b)   # Выведет: True
print(a < b)   # Выведет: False
 

Задания:

**Задание 1

  1. Создайте две переменные age_person1 и age_person2 с разными значениями возрастов.
  2. Проверьте, является ли age_person1 больше, чем age_person2, используя оператор >.
  3. Выведите результат проверки.

**Задание 2

  1. Создайте переменные height1 и height2 для хранения роста двух человек (в сантиметрах).
  2. Проверьте, меньше ли height1, чем height2, используя оператор <.
  3. Выведите результат проверки.

**Задание 3

  1. Создайте переменную temperature со значением текущей температуры на улице и переменную freezing_point со значением 0.
  2. Используйте оператор >=, чтобы проверить, выше или равна ли temperature точке замерзания (freezing_point).
  3. Выведите результат проверки, чтобы определить, является ли температура на улице выше или ниже точки замерзания.

**Задание 4

  1. Запиши в переменную целое число, которое больше 1. (например 2 или 3)
  2. Попробуй сравнить, больше ли эта переменная, чем True?
  3. Результат выведи при помощи print()

Опционально

👩🏼‍🦰Манипуляции над строками (методы строк)

Срезы (слайсинг) строк

Note

С помощью срезов можно получить часть строки. Синтаксис: строка[start:stop:step]:

 
city = "Москва"
sub_string = city[0:3]  # 'Мос'
print(sub_string)
 

Note

Если указать шаг, то можно пропускать символы:

 
city = "Москва"
sub_string = city[::2]  # 'Мсв'
print(sub_string)
 

Практика

Example

В папке string создайте файл string_slicing.py


Описание темы: Срезы (слайсинг) строк

Срез (slice) – это возможность взять часть строки. Для создания среза указывают начальный и конечный индексы через двоеточие: строка[начало:конец]. Python также позволяет задавать шаг для среза: строка[начало:конец:шаг].

  • Задание#1

    Создайте переменную text со значением "Hello, Python!".

    1. Получите из переменной text срез "Hello".
    2. Получите срез "Python".
    3. Получите срез "lo, Pyt"
  • Задание#2

    Создайте переменную alphabet со значением "abcdefghijklmnopqrstuvwxyz".

    1. Получите срез от alphabet, включающий только первые 10 букв.
    2. Получите срез от alphabet, включающий последние 5 букв.
    3. Получите каждый второй символ от alphabet.
  • Задание#3

    Создайте переменную reversed_text, в которой будет строка text, но в обратном порядке (используйте слайсинг).

    Подсказка: Используйте шаг -1 для обратного среза.

Методы изменения регистра

Note

Методы lower(), upper(), capitalize() и title() позволяют менять регистр символов строки:

 
text = "привет, Москва"
print(text.upper())       # 'ПРИВЕТ, МОСКВА'
print(text.lower())       # 'привет, москва'
print(text.capitalize())  # 'Привет, москва'
print(text.title())       # 'Привет, Москва'
 

Практика

Example

В папке string создайте файл string_case_methods.py


Описание темы: Методы изменения регистра

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

  • lower(): переводит строку в нижний регистр.

  • upper(): переводит строку в верхний регистр.

  • capitalize(): делает первую букву строки заглавной, остальные — строчными.

  • title(): делает заглавной первую букву каждого слова в строке.

  • Задание#5

    Создайте переменную text со значением "hElLo, PyThOn!".

    1. Примените к text метод lower() и сохраните результат в переменную text_lower. Проверьте результат.
    2. Примените к text метод upper() и сохраните результат в переменную text_upper. Проверьте результат.
  • Задание#5.1

    Создайте переменную sentence со значением "this is a test sentence.".

    1. Примените к sentence метод capitalize() и сохраните результат в переменную sentence_cap. Проверьте результат.
    2. Примените к sentence метод title() и сохраните результат в переменную sentence_title. Проверьте результат.
  • Задание#5.2

    Создайте переменную mixed_case со значением "PYTHON programming IS Fun".

    1. Используйте методы, чтобы сделать всю строку mixed_case строчной (lower()), а затем — заглавной (upper()).
    2. Примените capitalize() к mixed_case и посмотрите, что произойдёт.

Проверка содержимого строки

Note

Методы isalpha(), isdigit(), isspace(), startswith(), и endswith() позволяют проверить, что строка состоит только из букв, цифр, пробелов, а также проверить начало или конец строки:

 
text = "Москва2024"
print(text.isalpha())  # False, т.к. содержит цифры
print(text.isdigit())  # False, т.к. содержит буквы
print(text.startswith("Мос"))  # True
print(text.endswith("24"))     # True
 

Практика

Example

В папке string создайте файл string_content_check.py


Описание темы: Проверка содержимого строки

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

Основные методы:

  • in оператор: проверяет наличие подстроки в строке.
  • startswith(): проверяет, начинается ли строка с определённой подстроки.
  • endswith(): проверяет, заканчивается ли строка на определённую подстроку.
  • isdigit(): проверяет, состоит ли строка только из цифр.
  • isalnum(): проверяет, состоит ли строка только из букв и цифр.
  • isspace(): проверяет, состоит ли строка только из пробелов.
  • Задание#6
    • Создайте переменную phrase со значением "The quick brown fox jumps over the lazy dog".
    • Проверьте, содержит ли phrase слово "fox", используя оператор in. Сохраните результат в переменную contains_fox. Проверьте результат.
  • Задание#6.1
    • Создайте переменную greeting со значением "Hello, world!".
    • Используйте метод startswith() для проверки, начинается ли greeting с "Hello". Сохраните результат в переменную starts_with_hello. Проверьте результат.
    • Используйте метод endswith() для проверки, заканчивается ли greeting на "world!". Сохраните результат в переменную ends_with_world. Проверьте результат.
  • Задание#6.2
    • Создайте переменную text со значением "12345".
    • Проверьте, состоит ли text только из цифр, используя метод isdigit(). Сохраните результат в переменную is_digits. Проверьте результат.
    • Измените значение text на "abc123". Проверьте is_digits ещё раз, чтобы увидеть, что изменилось.
  • Задание#6.3
    • Создайте переменную mixed_text со значением "Hello123".
    • Используйте метод isalnum() для проверки, состоит ли mixed_text только из букв и цифр (без пробелов или специальных символов). Сохраните результат в переменную is_alphanumeric. Проверьте результат.
  • Задание#6.4
    • Создайте переменную whitespace_text со значением " ".
    • Проверьте, состоит ли whitespace_text только из пробелов, используя метод isspace(). Сохраните результат в переменную is_space. Проверьте результат.

Результаты выполнения:

  • Для каждого метода проверьте, что он возвращает True или False в зависимости от содержимого строки.

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

  • Ответы(не смотреть :D)

    Пример:

     
    phrase = "The quick brown fox jumps over the lazy dog"
    print("fox" in phrase)  # True
     
    greeting = "Hello, world!"
    print(greeting.startswith("Hello"))  # True
    print(greeting.endswith("world!"))  # True
     
    text = "12345"
    print(text.isdigit())  # True
     
    mixed_text = "Hello123"
    print(mixed_text.isalnum())  # True
     
    whitespace_text = "   "
    print(whitespace_text.isspace())  # True
     

Замена подстрок

Note

Что такое подстрока?

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

Допустим, у нас есть строка: "Кот сидит на крыше."

Здесь подстроками могут быть:

  • "Кот" — это слово в начале строки, оно входит в более длинную строку.
  • "сидит" — это ещё одно слово, часть всей фразы.
  • "на крыше" — это несколько слов вместе, они тоже являются подстрокой, потому что они просто часть всей строки.
  • И даже одна буква, например, "К" или пробел между словами — это тоже подстроки, так как они часть строки.

Почему это полезно? Иногда нам нужно найти, заменить или проверить наличие определённой подстроки в тексте. Например, мы можем захотеть заменить "Кот" на "Пёс", чтобы получилось "Пёс сидит на крыше.". Для таких задач и существует работа с подстроками — это инструмент для манипуляций с отдельными частями текста внутри более длинной строки.

Note

Метод replace() позволяет заменить одну подстроку на другую:

 
text = "Привет, Москва"
new_text = text.replace("Москва", "Санкт-Петербург")
print(new_text)  # 'Привет, Санкт-Петербург'
 

Практика

Example

В папке string создайте файл string_replace_methods.py


Описание темы: Замена подстрок

Метод replace() в Python позволяет заменить одну подстроку на другую. Это полезно, если нужно изменить часть строки или исправить ошибку.

Например:

 
text = "Привет, мир!"
new_text = text.replace("мир", "Python")
print(new_text)  # Выведет: Привет, Python!
 
  • Задание#7

    Создайте переменную sentence со значением "Кот сидит на крыше.".

    1. Замените подстроку "Кот" на "Пёс" и сохраните результат в переменную new_sentence. Проверьте результат.
    2. Замените "крыше" на "дереве" и сохраните результат в переменную new_sentence2. Проверьте результат.
  • Задание#7.1

    Создайте переменную phrase со значением "Я люблю яблоки и яблоки - самые вкусные фрукты.".

    1. Используйте метод replace(), чтобы заменить только первое вхождение "яблоки" на "бананы". (Подсказка: используйте дополнительный аргумент в replace() для ограничения числа замен.)
    2. Замените все вхождения "яблоки" на "бананы" и сохраните результат в new_phrase. Проверьте результат.
  • Задание#7.2

    Создайте переменную text со значением "Привет, мир! Привет, люди! Привет, солнце!".

    1. Замените подстроку "Привет" на "Здравствуй" во всех вхождениях.
    2. Попробуйте заменить "люди" на "друзья" и сохраните результат в переменную greeting. Проверьте результат.

Удаление лишних пробелов

Note

Методы strip(), lstrip(), и rstrip() удаляют пробелы в начале и/или конце строки:

text = "   Москва   "
print(text.strip())  # 'Москва'
print(text.lstrip()) # 'Москва   '
print(text.rstrip()) # '   Москва'
  • Практика

Example

В папке string файл string_whitespace.py для темы “Удаление лишних пробелов”.


Описание темы: Удаление лишних пробелов

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

  • strip() — удаляет пробелы в начале и в конце строки.
  • lstrip() — удаляет пробелы только в начале строки.
  • rstrip() — удаляет пробелы только в конце строки.

Пример:

text = "   Привет, мир!   "
print(text.strip())    # Выведет: "Привет, мир!"
print(text.lstrip())   # Выведет: "Привет, мир!   "
print(text.rstrip())   # Выведет: "   Привет, мир!"
 

Задания:

  • Задание #1

    Создайте переменную greeting со значением " Добрый день! ".

    1. Удалите пробелы в начале и в конце строки с помощью метода strip() и сохраните результат в переменную cleaned_greeting. Проверьте результат.
    2. Удалите только начальные пробелы, используя lstrip(), и сохраните результат в переменную left_trimmed. Проверьте результат.
    3. Удалите только конечные пробелы, используя rstrip(), и сохраните результат в переменную right_trimmed. Проверьте результат.
  • Задание #2

    Создайте переменную text со значением " Учимся Python. ".

    1. Используйте метод strip() для удаления лишних пробелов в начале и конце строки и выведите результат.
    2. Попробуйте оставить пробелы только с одной стороны строки (например, с помощью lstrip() или rstrip()), чтобы понять разницу в выводе.
  • Задание #3

    Создайте переменную sentence со значением " Python - это круто! ".

    1. Удалите пробелы в начале и в конце строки с помощью метода strip() и сохраните результат в переменную cleaned_sentence. Проверьте результат.
    2. Попробуйте удалить лишние пробелы между словами, используя метод replace() для замены двойных пробелов " " на одинарные " ". Сохраните результат в single_spaced_sentence. Проверьте результат.

Разделение и объединение строк

Note

Методы split() и join() позволяют разделять строку на части и объединять список строк:

text = "Привет, Москва"
words = text.split(", ")  # ['Привет', 'Москва']
print(words)
 
sentence = ", ".join(words)  # 'Привет, Москва'
print(sentence)

Note

Эти дополнительные методы и возможности помогут при работе со строками и сделают управление текстом более гибким и удобным!

  • Практика

Example

Создайте в папке string файл string_split_join.py для темы “Разделение и объединение строк”.


Описание темы: Разделение и объединение строк

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

Основные методы:

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

Пример:

text = "Привет мир"
words = text.split()  # Разделяет по пробелам
print(words)  # Выведет: ['Привет', 'мир']
 
joined_text = " ".join(words)  # Объединяет список в строку с пробелами
print(joined_text)  # Выведет: "Привет мир"

Задания:

  • Задание #1

    Создайте переменную sentence со значением "Python - это весело!".

    1. Разделите строку sentence по пробелам с помощью split() и сохраните результат в переменную words. Проверьте результат.
    2. Объедините words обратно в строку с пробелами между словами, используя join(), и сохраните результат в rejoined_sentence. Проверьте результат.
  • Задание #2

    Создайте переменную data со значением "яблоко,банан,вишня,груша".

    1. Разделите строку data по запятым , с помощью split(), чтобы получить список фруктов, и сохраните результат в переменную fruits. Проверьте результат.
    2. Объедините fruits обратно в строку, используя join() с разделителем ", ", и сохраните результат в fruit_list. Проверьте результат.
  • Задание #3

    Создайте переменную path со значением "home/user/documents/python/lesson1".

    1. Разделите строку path по символу /, чтобы получить список директорий, и сохраните результат в переменную directories. Проверьте результат.
    2. Используя join(), объедините элементы directories обратно в строку, но используйте \\ в качестве разделителя. Сохраните результат в windows_path и проверьте его.

Вставка значений в строку:

Note

Python позволяет встраивать в строку значения других переменных. Для этого внутри строки переменные размещаются в фигурных скобках {}, а перед всей строкой ставится символ f:

city = "Москва"
user = f"город - {city}"
print(user)   # Выведет: город - Москва
  • Практика:

Example

Cоздайте в папке string файл string_formatting.py для темы “Вставка значений в строку”.


Описание темы: Вставка значений в строку

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

Основные методы:

  • f-строки — позволяют вставлять переменные и выражения внутрь строки, используя синтаксис f"...".
  • Метод .format() — вставляет значения в строку, используя плейсхолдеры {}.
  • Оператор % — более старый метод форматирования строк, который позволяет вставлять значения, используя символ %.

Пример:

name = "Анна"
age = 30
 
# f-строка
print(f"Привет, меня зовут {name}, и мне {age} лет.")  # Выведет: "Привет, меня зовут Анна, и мне 30 лет."
 
# Метод format
print("Привет, меня зовут {}, и мне {} лет.".format(name, age))  # Выведет: "Привет, меня зовут Анна, и мне 30 лет."
 

Задания:

  • **Задание 1
    1. Создайте переменные name со значением "Дмитрий" и age со значением 28.
    2. Вставьте значения переменных name и age в строку с помощью f-строки, и сохраните результат в переменную greeting_f. Проверьте результат.
  • **Задание 2
    1. Создайте переменные city со значением "Москва" и temperature со значением 15.5.
    2. Вставьте значения переменных city и temperature в строку с помощью метода .format(), и сохраните результат в переменную weather_format. Проверьте результат.
  • **Задание 3
    1. Создайте переменные product со значением "ноутбук" и price со значением 54999.
    2. Вставьте значения переменных product и price в строку с помощью оператора %, и сохраните результат в переменную product_info_percent. Проверьте результат.

👩🏼‍🦰Манипуляции над числами(методы чисел integer)

Описание темы: Методы для работы с числами

Note

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


Преобразование типов — функция int():

  • Преобразует строки и вещественные числа в целые.
 
number = int(4.6)   # Выведет: 4
 
  • Практика:

Example

В папке **integer**создайте файл int_conversion.py


Описание темы: Преобразование типов — функция int()

Функция int() используется для преобразования значений в целочисленный тип. Она принимает на вход строку, дробное число или любое значение, которое может быть преобразовано в целое число, и возвращает целое числ


Задания:

Задание #1

Создайте переменную float_num со значением 12.99.

  1. Примените к float_num функцию int() и сохраните результат в переменную int_num. Проверьте результат, выведя его на экран.
  2. Обратите внимание, как дробная часть числа обрабатывается функцией int().

Задание #2

Создайте переменную string_num со значением "45" (строковый тип).

  1. Преобразуйте string_num в целое число, используя функцию int(), и сохраните результат в переменную converted_num.
  2. Проверьте тип переменной converted_num, чтобы убедиться, что она теперь целочисленного типа.

Задание #3

Создайте переменную invalid_string со значением "hello123".

  1. Попробуйте преобразовать invalid_string в целое число с помощью функции int().
  2. Обратите внимание на возникшую ошибку и подумайте, почему Python не может преобразовать это значение в целое число.

Абсолютное значение — функция abs():

  • Возвращает модуль числа.
 
print(abs(-7))   # Выведет: 7
 
  • Практика:

Example

В папке Data types —>**integer**создайте файл int_conversion.py


Описание темы: Абсолютное значение — функция abs()

Функция abs() возвращает абсолютное значение числа, то есть положительное значение величины независимо от знака. Это полезно, если нужно узнать расстояние от числа до нуля, не учитывая направление.

Пример:

 
number = -10
positive_number = abs(number)
print(positive_number)  # Выведет: 10
 

Задания:

**Задание 1

Создайте переменную num1 со значением -56.

  1. Примените функцию abs() к num1, чтобы получить его абсолютное значение. Сохраните результат в переменную abs_num1.
  2. Выведите abs_num1 на экран.

**Задание 2

Создайте переменную num2 со значением -4.8.

  1. Примените функцию abs() к num2 и сохраните результат в переменную abs_num2.
  2. Проверьте результат, выведя abs_num2 на экран, и убедитесь, что значение положительное.

Возведение в степень — функция pow():

  • Возводит число в указанную степень.
 
print(pow(3, 2))  # Выведет: 9
 
  • Практика:

Example

В папке Data types → В папке integer создайте файл int_pow.py


Описание темы: Возведение в степень — функция pow()

Функция pow() позволяет возводить целые числа (int) в степень. Она полезна, когда нужно работать с большими числами или выполнять математические операции с целыми значениями.

Пример:

 
result = pow(3, 2)  # 3 в степени 2
print(result)  # Выведет: 9
 

Задания:

**Задание 1

  • Создайте переменную base со значением 5 и переменную exponent со значением 3.
  • Используйте pow() для возведения base в степень exponent и сохраните результат в переменную result.
  • Выведите результат на экран.

**Задание 2

  • Создайте переменную number со значением 10.
  • Возведите number в степень 4 с помощью pow() и сохраните результат в переменную power_result.
  • Проверьте результат, выведя его на экран.

**Задание 3

  • Создайте переменную a со значением 2 и переменную b со значением 8.
  • Используйте pow() для возведения a в степень b.
  • Выведите результат и подумайте, насколько быстро растет значение при увеличении степени.

Максимум и минимум — функции max() и min():

  • Позволяют находить наибольшее и наименьшее значение в списке чисел.
 
print(max(5, 10, 20))  # Выведет: 20
 
  • Практика:

Example

В папке Data types → В папке integer создайте файл int_max_min.py


Описание темы: Максимум и минимум — функции max() и min()

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

Пример:

maximum = max(3, 5, 7)
minimum = min(3, 5, 7)
print(maximum)  # Выведет: 7
print(minimum)  # Выведет: 3
 

Задания:

**Задание 1

  • Создайте переменные num1, num2, и num3 со значениями 10, 20, и 5 соответственно.
  • Используйте функцию max() для нахождения наибольшего значения среди этих переменных и сохраните результат в переменную max_value.
  • Выведите max_value на экран.

**Задание 2

  • Создайте переменные a, b, c, и d со значениями 15, 23, 42, и 7.
  • Используйте функцию min() для нахождения наименьшего значения среди этих переменных и сохраните результат в переменную min_value.
  • Выведите min_value на экран.

**Задание 3

  • Создайте список целых чисел numbers = [3, 8, 1, 25, 19, 4, 7].
  • Используйте функции max() и min() для нахождения максимального и минимального значения в списке numbers.
  • Выведите результаты на экран.

Деление с остатком — оператор // и %:

  • // возвращает целую часть от деления.
  • % возвращает остаток от деления.
 
print(10 // 3)   # Выведет: 3
print(10 % 3)    # Выведет: 1
 
  • Практика:

Example

В папке Data types → В папке integer создайте файл int_division.py


Описание темы: Деление с остатком — операторы // и %

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

Пример:

a = 10
b = 3
print(a // b)  # Целая часть от деления 10 на 3: выведет 3
print(a % b)   # Остаток от деления 10 на 3: выведет 1
 

Задания:

**Задание 1

  • Создайте переменные x = 25 и y = 4.
  • Используйте оператор //, чтобы найти целую часть от деления x на y, и сохраните результат в переменную quotient.
  • Найдите остаток от деления x на y с помощью %, и сохраните результат в переменную remainder.
  • Выведите quotient и remainder на экран.

**Задание 2

  • Создайте переменную total_seconds со значением 7853.
  • Используя оператор //, найдите, сколько полных минут содержится в total_seconds, и сохраните результат в переменную minutes.
  • С помощью %, найдите, сколько секунд остаётся после вычитания минут, и сохраните результат в переменную seconds.
  • Выведите minutes и seconds на экран.

**Задание 3

  • Создайте переменные a = 47 и b = 5.
  • Используя //, определите, сколько раз число b полностью помещается в число a, и сохраните результат в переменную div_count.
  • Найдите остаток от деления a на b и сохраните его в переменную leftover.
  • Выведите div_count и leftover на экран.

Работа с длиной строки и числа — функция len()

  • len(): Возвращает длину строки. Полезно для проверки ожидаемой длины данных.
text = "Hello, World!"
print(len(text))  # Выведет: 13
  • Практика:

Example

В папке Data types → В папке integer создайте файл int_length.py


Описание темы: Работа с длиной строки и чисел — функция len()

  • Функция len() возвращает количество элементов в объекте, таком как строка или список. Для чисел int в чистом виде len() не применяется, но длину числа можно получить, преобразовав его в строку с помощью str().

Пример:

 
number = 12345
length = len(str(number))  # Преобразуем число в строку и вычисляем длину: выведет 5
print(length)
 

Задания:

**Задание 1

  • Создайте переменную num1 со значением 789.
  • Преобразуйте num1 в строку и используйте len() для подсчёта количества цифр.
  • Сохраните результат в переменную num_length и выведите её на экран.

**Задание 2

  • Создайте переменную large_number со значением 1234567890123.
  • Преобразуйте large_number в строку и используйте len() для определения количества цифр.
  • Выведите результат на экран.

**Задание 3

  • Создайте переменную phone_number со значением 84951234567.
  • Используйте len() для подсчёта количества цифр в номере телефона, преобразовав его в строку.
  • Проверьте, что длина равна 11. Выведите результат.

👩🏼‍🦰Манипуляция над вещественными числами (float):

Округление — функция round()

Округляет вещественное число до указанного количества знаков после запятой.

number = 3.14159
rounded_number = round(number, 2)
print(rounded_number)  # Выведет: 3.14
 
  • Практика:

Example

В папке Data types → В папке float создайте файл float_round.py


Описание темы: Округление — функция round()

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

Пример:

number = 5.678
rounded_number = round(number, 2)  # Округлит до двух знаков после запятой
print(rounded_number)  # Выведет: 5.68
 

Задания:

  • **Задание 1
    • Создайте переменную value со значением 3.14159.
    • Используйте функцию round() для округления value до двух знаков после запятой и сохраните результат в переменную rounded_value.
    • Выведите rounded_value на экран.
  • **Задание 2
    • Создайте переменную price со значением 19.999.
    • Используйте функцию round() для округления price до целого числа и сохраните результат в переменную rounded_price.
    • Выведите rounded_price на экран.
  • **Задание 3
    • Создайте список вещественных чисел grades = [89.9, 92.75, 88.6, 91.3].
    • Используйте цикл, чтобы пройтись по каждому числу в списке и округлить его до одного знака после запятой.
    • Сохраните результаты округления в новый список rounded_grades и выведите его на экран.

Округление вниз и вверх — функции math.floor() и math.ceil()

math.floor() округляет число вниз, math.ceil() — вверх. Для их использования необходимо импортировать модуль math.

import math
print(math.floor(3.7))  # Выведет: 3
print(math.ceil(3.1))   # Выведет: 4
 

Извлечение квадратного корня — функция math.sqrt()

Вычисляет квадратный корень из числа.

import math
print(math.sqrt(16.0))  # Выведет: 4.0
 
  • Практика:

Example

В папке Data types → В папке float создайте файл float_rounding.py


Описание темы: Округление вниз и вверх — функции math.floor() и math.ceil()

Функция math.floor() округляет число вниз до ближайшего целого, а math.ceil() — вверх. Эти функции полезны, когда нужно округлить вещественное число в определённую сторону.

Пример:

import math
 
number = 7.6
print(math.floor(number))  # Выведет: 7 (округление вниз)
print(math.ceil(number))   # Выведет: 8 (округление вверх)
 

Задания:

  • **Задание 1
    • Создайте переменную price со значением 19.99.
    • Используйте math.floor() для округления price вниз и сохраните результат в переменную rounded_down.
    • Используйте math.ceil() для округления price вверх и сохраните результат в переменную rounded_up.
    • Выведите rounded_down и rounded_up.
  • **Задание 2
    • Создайте переменную height со значением 175.45.
    • Округлите height вниз с помощью math.floor() и сохраните результат в переменную height_floor.
    • Округлите height вверх с помощью math.ceil() и сохраните результат в переменную height_ceil.
    • Выведите height_floor и height_ceil.
  • **Задание 3
    • Создайте переменную score со значением 88.8.
    • Округлите score вниз и вверх, сохраняя результаты в переменных score_floor и score_ceil.
    • Выведите score_floor и score_ceil.

Приблизительное равенство — функция math.isclose()

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

import math
print(math.isclose(1.0000001, 1.0, rel_tol=1e-5))  # Выведет: True
 
  • Практика:

Example

В папке Data types → В папке float создайте файл float_comparison.py


Описание темы: Приблизительное равенство — функция math.isclose()

Функция math.isclose() позволяет сравнивать два числа на предмет их “приблизительного равенства”. Она полезна, когда требуется проверить, близки ли значения с учетом погрешностей, например, при работе с вещественными числами.

Пример:

import math
 
a = 0.1 + 0.2
b = 0.3
print(math.isclose(a, b))  # Выведет: True, так как a и b близки по значению
 

Задания:

  • **Задание 1
    • Создайте две переменные x и y со значениями 1.000001 и 1.000002.
    • Используйте math.isclose() для проверки, насколько близки x и y.
    • Выведите результат сравнения.
  • **Задание 2
    • Создайте переменные price1 и price2 со значениями 19.999 и 20.0.
    • Используйте math.isclose() для проверки приблизительного равенства price1 и price2 с разными уровнями точности (например, rel_tol=1e-5 и rel_tol=1e-3).
    • Выведите результаты и проанализируйте, как меняется результат в зависимости от уровня точности.
  • **Задание 3
    • Создайте две переменные distance1 и distance2 со значениями 150.002 и 150.003.
    • Проверьте, являются ли эти значения приблизительно равными при абсолютной точности abs_tol=0.001.
    • Выведите результат сравнения и объясните, почему результат именно такой.

Проверка на целое число — метод float.is_integer()

Проверяет, является ли вещественное число целым. Возвращает True, если число целое.

num = 5.0
print(num.is_integer())  # Выведет: True
		
  • Практика:

Example

В папке Data types → В папке float создайте файл float_is_integer.py.


Описание темы: Проверка на целое число — метод float.is_integer()

Метод is_integer() проверяет, является ли вещественное число целым, возвращая True для целых значений и False для дробных.

Пример:

num1 = 5.0
num2 = 5.5
print(num1.is_integer())  # Выведет: True
print(num2.is_integer())  # Выведет: False
 

Задания:

  • **Задание 1

    Создайте переменную number1 со значением 10.0 и переменную number2 со значением 10.5.

    1. Проверьте, является ли number1 целым числом, используя метод is_integer(). Сохраните результат в is_whole_number1.
    2. Проверьте, является ли number2 целым числом, используя метод is_integer(). Сохраните результат в is_whole_number2.
    3. Выведите оба результата и объясните разницу.
  • **Задание 2

    Создайте переменную num со значением float(input("Введите число: ")).

    1. Проверьте, является ли введённое число целым, используя метод is_integer().
    2. Выведите сообщение в формате "Число целое" или "Число не является целым" в зависимости от результата проверки.

Экспоненциальная форма записи числа

Позволяет записывать очень большие или очень малые числа в научной нотации (e-нотация).

large_num = 1.23e10
print(large_num)  # Выведет: 12300000000.0
 

Важно: Функция len() не может быть применена к числам (включая float), так как она предназначена для измерения длины последовательностей, таких как строки или списки.

  • Практика:

Example

В папке Data types → В папке float создайте файл float_exponential_notation.py.


Описание темы: Экспоненциальная форма записи числа

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

Пример:

large_num = 1.23e10
small_num = 5.67e-5
print(large_num)  # Выведет: 12300000000.0
print(small_num)  # Выведет: 0.0000567
 

Задания:

  • **Задание 1
    1. Создайте переменную distance_to_sun и присвойте ей значение 1.496e11 (расстояние до Солнца в метрах).
    2. Создайте переменную mass_of_proton и присвойте ей значение 1.67e-27 (масса протона в килограммах).
    3. Выведите оба значения и объясните, почему экспоненциальная форма записи удобна для таких величин.
  • **Задание 2
    1. Создайте переменную large_value со значением 3.6e5.
    2. Создайте переменную small_value со значением 4.2e-3.
    3. Умножьте large_value на small_value и выведите результат. Объясните, почему Python использует экспоненциальную запись для представления результата.
  • **Задание 3
    1. Напишите программу, которая принимает число от пользователя в экспоненциальной форме. Используйте float(input("Введите число в экспоненциальной форме: ")) для получения значения.
    2. Выведите полученное число в обычной форме.
    3. Объясните, почему результат может отличаться от введённого значения, если оно очень маленькое или очень большое.

👩🏼‍🦰Манипуляция над Значение None

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

Проверка на None

Для проверки, является ли переменная None, используется оператор is. Это надёжный способ убедиться, что переменная не содержит значения.

result = None
if result is None:
    print("Результат отсутствует.")
else:
    print("Результат найден.")
# Выведет: Результат отсутствует.
 
  • Практика:

Example

В папке Data types → В папке none создайте файл none_check.py.


Описание темы: Проверка на None

None в Python — это специальное значение, которое используется для обозначения отсутствия значения. Проверка на None часто необходима для проверки, установлено ли значение у переменной. Используется оператор is для проверки, является ли переменная None.

Пример:

name = None
if name is None:
    print("Имя не задано.")
 

Задания:

  • **Задание 1
    1. Создайте переменную username и присвойте ей значение None.
    2. Проверьте, равна ли переменная username значению None. Если да, присвойте ей значение "Гость".
    3. Выведите результат переменной username.
  • **Задание 2
    1. Напишите функцию greet_user, которая принимает один параметр — name.
    2. Внутри функции проверьте, если name равно None, установите его значение на "Аноним".
    3. Функция должна выводить Привет, {name}!. Протестируйте функцию, вызывая её с None и с именем.
  • **Задание 3
    1. Создайте словарь user_info, где ключи — это name, age, и email, и значение для email установите как None.
    2. Напишите проверку, которая устанавливает значение email на "не указан", если оно равно None.
    3. Выведите обновлённый словарь.

Использование None как значения по умолчанию

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

def greet(name=None):
    if name is None:
        print("Привет, гость!")
    else:
        print(f"Привет, {name}!")
 
greet()          # Выведет: Привет, гость!
greet("Анна")    # Выведет: Привет, Анна!
 
  • Практика:

Example

В папке Data types → В папке none создайте файл none_default.py


Описание темы: Использование None как значения по умолчанию

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

Пример:

def greet_user(name=None):
    if name is None:
        name = "Аноним"
    print(f"Привет, {name}!")
 

Задания:

  • **Задание 1
    1. Напишите функцию calculate_discount(price, discount=None).
    2. Если discount равно None, установите его значение на 0.05 (5%).
    3. Функция должна возвращать цену с учетом скидки.
    4. Проверьте функцию с discount и без него.
  • **Задание 2
    1. Создайте функцию add_to_list(item, my_list=None), которая добавляет элемент item в список my_list.
    2. Если my_list равно None, создайте внутри функции новый пустой список.
    3. Функция должна возвращать обновленный список.
    4. Протестируйте функцию, вызывая её без списка и с существующим списком.
  • **Задание 3
    1. Напишите функцию send_email(subject, body, recipient=None).
    2. Если recipient равно None, установите его значение на "support@example.com".
    3. Функция должна выводить сообщение с темой, телом письма и получателем.
    4. Протестируйте функцию, передавая recipient и оставляя его пустым.

Присвоение значения, если переменная None

Оператор or можно использовать для установки значения переменной, если она равна None.

value = None
value = value or "Значение по умолчанию"
print(value)  # Выведет: Значение по умолчанию
 
  • Практика:

Example

В папке Data types → В папке boolean создайте файл assign_if_none.py.


Описание темы: Присвоение значения, если переменная None

Когда переменная равна None, можно задать ей значение по умолчанию. В Python часто используют оператор or или оператор присвоения := (если поддерживается вашей версией Python) для присвоения значения, если переменная имеет значение None.

Пример:

value = None
default_value = "Python"
value = value or default_value
print(value)  # Выведет: Python
 

Задания:

  • **Задание 1
    1. Создайте переменную city со значением None.
    2. Присвойте ей значение "Москва", если она равна None, используя оператор or.
    3. Выведите значение city на экран.
  • **Задание 2
    1. Создайте переменную language и присвойте ей значение None.
    2. Используйте оператор or, чтобы присвоить language значение "Python" только если она равна None.
    3. Выведите результат на экран.
  • **Задание 3
    1. Создайте переменную user_name со значением None.
    2. Используйте оператор or для присвоения значения "Guest" переменной user_name, если она равна None.
    3. Выведите значение user_name на экран.

Проверка перед доступом к объекту

Если вы не уверены, содержит ли объект значение, проверка на None помогает избежать ошибок. Например, при обращении к методам или атрибутам объекта.

user = None
if user is not None:
    print(user.name)  # Выполнится, только если user не None
else:
    print("Пользователь не найден.")
# Выведет: Пользователь не найден.
 
  • Практика:

Example

В папке Data types → В папке boolean создайте файл check_before_access.py.


Описание темы: Проверка перед доступом к объекту

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

Пример:

user = None
if user:
    print(user.name)  # Эта строка не выполнится, если user равен None
else:
    print("User не инициализирован")  # Выведет: User не инициализирован
 

Задания:

  • **Задание 1
    1. Создайте переменную employee и присвойте ей значение None.
    2. Используйте условный оператор if для проверки, и если employee не равен None, выведите атрибут employee.name.
    3. В противном случае выведите сообщение "Сотрудник не найден".
  • **Задание 2
    1. Создайте переменную car и присвойте ей значение None.
    2. Проверьте, и если car не равен None, выведите значение атрибута car.model.
    3. Если car равен None, выведите сообщение "Автомобиль не указан".
  • **Задание 3
    1. Создайте переменную book и присвойте ей значение None.
    2. Проверьте, если book инициализирован, выведите book.title. Если нет — выведите сообщение "Книга не найдена".

⬅️ Назад: 02.02 - Переменные и Типы данных | Далее: 02.04 - Коллекции данных ➡️ Модуль: 02 - MOC