Browse Source

lesson3 txt format

Lex 1 year ago
parent
commit
50fb677dda
48 changed files with 990 additions and 0 deletions
  1. 25 0
      python_technology_stack/Leson11/L11Task1.py
  2. 25 0
      python_technology_stack/Leson11/L11Task1.txt
  3. 121 0
      python_technology_stack/Leson11/L11Task2.py
  4. 113 0
      python_technology_stack/Leson11/L11Task2.txt
  5. 33 0
      python_technology_stack/Lesson10/L10Task1.py
  6. 33 0
      python_technology_stack/Lesson10/L10Task1.txt
  7. 9 0
      python_technology_stack/Lesson10/L10Task2.py
  8. 9 0
      python_technology_stack/Lesson10/L10Task2.txt
  9. 34 0
      python_technology_stack/Lesson13/L13Task1.py
  10. 34 0
      python_technology_stack/Lesson13/L13Task1.txt
  11. 12 0
      python_technology_stack/Lesson14/L14Task1.py
  12. 12 0
      python_technology_stack/Lesson14/L14Task1.txt
  13. 18 0
      python_technology_stack/Lesson15/L15Task1.py
  14. 18 0
      python_technology_stack/Lesson15/L15Task1.txt
  15. 18 0
      python_technology_stack/Lesson15/L15Task2.py
  16. 18 0
      python_technology_stack/Lesson15/L15Task2.txt
  17. 13 0
      python_technology_stack/Lesson4/L4Task1.py
  18. 13 0
      python_technology_stack/Lesson4/L4Task1.txt
  19. 15 0
      python_technology_stack/Lesson4/L4Task2.py
  20. 15 0
      python_technology_stack/Lesson4/L4Task2.txt
  21. 22 0
      python_technology_stack/Lesson5/L5Task1.py
  22. 22 0
      python_technology_stack/Lesson5/L5Task1.txt
  23. 20 0
      python_technology_stack/Lesson5/L5Task2.py
  24. 20 0
      python_technology_stack/Lesson5/L5Task2.txt
  25. 16 0
      python_technology_stack/Lesson5/L5Task3.py
  26. 16 0
      python_technology_stack/Lesson5/L5Task3.txt
  27. 14 0
      python_technology_stack/Lesson6/L6Task1.py
  28. 14 0
      python_technology_stack/Lesson6/L6Task1.txt
  29. 13 0
      python_technology_stack/Lesson6/L6Task2.py
  30. 13 0
      python_technology_stack/Lesson6/L6Task2.txt
  31. 8 0
      python_technology_stack/Lesson6/L6Task3.py
  32. 8 0
      python_technology_stack/Lesson6/L6Task3.txt
  33. 8 0
      python_technology_stack/Lesson7/L7Task1.py
  34. 8 0
      python_technology_stack/Lesson7/L7Task1.txt
  35. 8 0
      python_technology_stack/Lesson7/L7Task2.py
  36. 8 0
      python_technology_stack/Lesson7/L7Task2.txt
  37. 12 0
      python_technology_stack/Lesson8/L8Task1.py
  38. 12 0
      python_technology_stack/Lesson8/L8Task1.txt
  39. 15 0
      python_technology_stack/Lesson8/L8Task2.py
  40. 15 0
      python_technology_stack/Lesson8/L8Task2.txt
  41. 26 0
      python_technology_stack/Lesson8/L8Task3.py
  42. 26 0
      python_technology_stack/Lesson8/L8Task3.txt
  43. 11 0
      python_technology_stack/Lesson9/L9Task1.py
  44. 11 0
      python_technology_stack/Lesson9/L9Task1.txt
  45. 15 0
      python_technology_stack/Lesson9/L9Task2.py
  46. 15 0
      python_technology_stack/Lesson9/L9Task2.txt
  47. 13 0
      python_technology_stack/Lesson9/L9Task3.py
  48. 13 0
      python_technology_stack/Lesson9/L9Task3.txt

+ 25 - 0
python_technology_stack/Leson11/L11Task1.py

@@ -0,0 +1,25 @@
+import math
+
+def factorial(n):
+    """Вычисляет факториал числа n."""
+    return math.factorial(n)
+
+def generate_factorial_list(n):
+    """Создает список факториалов от n до 1."""
+    # Найдем факториал исходного числа
+    fact = factorial(n)
+    # Список факториалов в убывающем порядке
+    factorials = []
+    # Итерация от факторала числа n до 1
+    while fact > 1:
+        factorials.append(fact)
+        fact -= 1
+        fact = factorial(fact) if fact > 0 else 1
+    factorials.append(1)  # Добавляем факториал 1
+    return factorials
+
+# Пример использования
+n = int(input("Введите натуральное целое число: "))
+fact = factorial(n)
+print(f"Факториал числа {n} = {fact}")
+print("Список факториалов в убывающем порядке:", generate_factorial_list(n))

+ 25 - 0
python_technology_stack/Leson11/L11Task1.txt

@@ -0,0 +1,25 @@
+import math
+
+def factorial(n):
+    """Вычисляет факториал числа n."""
+    return math.factorial(n)
+
+def generate_factorial_list(n):
+    """Создает список факториалов от n до 1."""
+    # Найдем факториал исходного числа
+    fact = factorial(n)
+    # Список факториалов в убывающем порядке
+    factorials = []
+    # Итерация от факторала числа n до 1
+    while fact > 1:
+        factorials.append(fact)
+        fact -= 1
+        fact = factorial(fact) if fact > 0 else 1
+    factorials.append(1)  # Добавляем факториал 1
+    return factorials
+
+# Пример использования
+n = int(input("Введите натуральное целое число: "))
+fact = factorial(n)
+print(f"Факториал числа {n} = {fact}")
+print("Список факториалов в убывающем порядке:", generate_factorial_list(n))

+ 121 - 0
python_technology_stack/Leson11/L11Task2.py

@@ -0,0 +1,121 @@
+import collections
+
+# Изначальный словарь с питомцами
+pets = {
+    1: {
+        "Мухтар": {
+            "Вид питомца": "Собака",
+            "Возраст питомца": 9,
+            "Имя владельца": "Павел"
+        },
+    },
+    2: {
+        "Каа": {
+            "Вид питомца": "желторотый питон",
+            "Возраст питомца": 19,
+            "Имя владельца": "Саша"
+        },
+    }
+}
+
+
+def get_suffix(age):
+    """Возвращает правильное склонение слова 'год' в зависимости от возраста."""
+    if age % 10 == 1 and age % 100 != 11:
+        return "год"
+    elif age % 10 in [2, 3, 4] and not (age % 100 in [12, 13, 14]):
+        return "года"
+    else:
+        return "лет"
+
+
+def get_pet(ID):
+    """Возвращает информацию о питомце по ID или False, если питомец не найден."""
+    return pets.get(ID, False)
+
+
+def create():
+    """Создает новую запись о питомце и добавляет ее в словарь pets."""
+    import collections
+    last_id = collections.deque(pets, maxlen=1)[0]
+    new_id = last_id + 1
+    pet_name = input("Введите имя питомца: ")
+    pet_type = input("Введите вид питомца: ")
+    pet_age = int(input("Введите возраст питомца: "))
+    owner_name = input("Введите имя владельца: ")
+
+    pets[new_id] = {
+        pet_name: {
+            "Вид питомца": pet_type,
+            "Возраст питомца": pet_age,
+            "Имя владельца": owner_name
+        }
+    }
+
+
+def read(ID):
+    """Отображает информацию о питомце по ID в формате строки."""
+    pet = get_pet(ID)
+    if pet:
+        pet_name = list(pet.keys())[0]
+        pet_info = pet[pet_name]
+        age_suffix = get_suffix(pet_info['Возраст питомца'])
+        return (f"Это {pet_info['Вид питомца']} по кличке \"{pet_name}\". "
+                f"Возраст питомца: {pet_info['Возраст питомца']} {age_suffix}. "
+                f"Имя владельца: {pet_info['Имя владельца']}")
+    else:
+        return "Питомец с таким ID не найден."
+
+
+def update(ID):
+    """Обновляет информацию о питомце по ID."""
+    pet = get_pet(ID)
+    if pet:
+        pet_name = list(pet.keys())[0]
+        pet_info = pet[pet_name]
+        pet_info['Вид питомца'] = input("Введите новый вид питомца: ")
+        pet_info['Возраст питомца'] = int(input("Введите новый возраст питомца: "))
+        pet_info['Имя владельца'] = input("Введите новое имя владельца: ")
+    else:
+        print("Питомец с таким ID не найден.")
+
+
+def delete(ID):
+    """Удаляет запись о питомце по ID."""
+    if ID in pets:
+        del pets[ID]
+    else:
+        print("Питомец с таким ID не найден.")
+
+
+def pets_list():
+    """Выводит список всех питомцев."""
+    for ID, pet in pets.items():
+        pet_name = list(pet.keys())[0]
+        pet_info = pet[pet_name]
+        age_suffix = get_suffix(pet_info['Возраст питомца'])
+        print(f"ID: {ID}, {pet_info['Вид питомца']} по кличке \"{pet_name}\". "
+              f"Возраст питомца: {pet_info['Возраст питомца']} {age_suffix}. "
+              f"Имя владельца: {pet_info['Имя владельца']}")
+
+
+# Основной цикл работы программы
+while True:
+    command = input("Введите команду (create, read, update, delete, list, stop): ")
+    if command == 'stop':
+        break
+    elif command == 'create':
+        create()
+    elif command == 'read':
+        pet_id = int(input("Введите ID питомца: "))
+        print(read(pet_id))
+    elif command == 'update':
+        pet_id = int(input("Введите ID питомца: "))
+        update(pet_id)
+    elif command == 'delete':
+        pet_id = int(input("Введите ID питомца: "))
+        delete(pet_id)
+    elif command == 'list':
+        pets_list()
+    else:
+        print("Неизвестная команда.")

+ 113 - 0
python_technology_stack/Leson11/L11Task2.txt

@@ -0,0 +1,113 @@
+import collections
+
+# Изначальный словарь с питомцами
+pets = {
+    1: {
+        "Мухтар": {
+            "Вид питомца": "Собака",
+            "Возраст питомца": 9,
+            "Имя владельца": "Павел"
+        },
+    },
+    2: {
+        "Каа": {
+            "Вид питомца": "желторотый питон",
+            "Возраст питомца": 19,
+            "Имя владельца": "Саша"
+        },
+    }
+}
+
+def get_suffix(age):
+    """Возвращает правильное склонение слова 'год' в зависимости от возраста."""
+    if age % 10 == 1 and age % 100 != 11:
+        return "год"
+    elif age % 10 in [2, 3, 4] and not (age % 100 in [12, 13, 14]):
+        return "года"
+    else:
+        return "лет"
+
+def get_pet(ID):
+    """Возвращает информацию о питомце по ID или False, если питомец не найден."""
+    return pets.get(ID, False)
+
+def create():
+    """Создает новую запись о питомце и добавляет ее в словарь pets."""
+    import collections
+    last_id = collections.deque(pets, maxlen=1)[0]
+    new_id = last_id + 1
+    pet_name = input("Введите имя питомца: ")
+    pet_type = input("Введите вид питомца: ")
+    pet_age = int(input("Введите возраст питомца: "))
+    owner_name = input("Введите имя владельца: ")
+
+    pets[new_id] = {
+        pet_name: {
+            "Вид питомца": pet_type,
+            "Возраст питомца": pet_age,
+            "Имя владельца": owner_name
+        }
+    }
+
+def read(ID):
+    """Отображает информацию о питомце по ID в формате строки."""
+    pet = get_pet(ID)
+    if pet:
+        pet_name = list(pet.keys())[0]
+        pet_info = pet[pet_name]
+        age_suffix = get_suffix(pet_info['Возраст питомца'])
+        return (f"Это {pet_info['Вид питомца']} по кличке \"{pet_name}\". "
+                f"Возраст питомца: {pet_info['Возраст питомца']} {age_suffix}. "
+                f"Имя владельца: {pet_info['Имя владельца']}")
+    else:
+        return "Питомец с таким ID не найден."
+
+def update(ID):
+    """Обновляет информацию о питомце по ID."""
+    pet = get_pet(ID)
+    if pet:
+        pet_name = list(pet.keys())[0]
+        pet_info = pet[pet_name]
+        pet_info['Вид питомца'] = input("Введите новый вид питомца: ")
+        pet_info['Возраст питомца'] = int(input("Введите новый возраст питомца: "))
+        pet_info['Имя владельца'] = input("Введите новое имя владельца: ")
+    else:
+        print("Питомец с таким ID не найден.")
+
+def delete(ID):
+    """Удаляет запись о питомце по ID."""
+    if ID in pets:
+        del pets[ID]
+    else:
+        print("Питомец с таким ID не найден.")
+
+def pets_list():
+    """Выводит список всех питомцев."""
+    for ID, pet in pets.items():
+        pet_name = list(pet.keys())[0]
+        pet_info = pet[pet_name]
+        age_suffix = get_suffix(pet_info['Возраст питомца'])
+        print(f"ID: {ID}, {pet_info['Вид питомца']} по кличке \"{pet_name}\". "
+              f"Возраст питомца: {pet_info['Возраст питомца']} {age_suffix}. "
+              f"Имя владельца: {pet_info['Имя владельца']}")
+
+# Основной цикл работы программы
+while True:
+    command = input("Введите команду (create, read, update, delete, list, stop): ")
+    if command == 'stop':
+        break
+    elif command == 'create':
+        create()
+    elif command == 'read':
+        pet_id = int(input("Введите ID питомца: "))
+        print(read(pet_id))
+    elif command == 'update':
+        pet_id = int(input("Введите ID питомца: "))
+        update(pet_id)
+    elif command == 'delete':
+        pet_id = int(input("Введите ID питомца: "))
+        delete(pet_id)
+    elif command == 'list':
+        pets_list()
+    else:
+        print("Неизвестная команда.")

+ 33 - 0
python_technology_stack/Lesson10/L10Task1.py

@@ -0,0 +1,33 @@
+# Создаем пустой словарь
+pets = {}
+
+# Запрашиваем информацию у пользователя
+pet_name = input("Введите имя питомца: ")
+pet_type = input("Введите вид питомца: ")
+pet_age = int(input("Введите возраст питомца: "))
+owner_name = input("Введите имя владельца: ")
+
+# Определяем правильное склонение для слова "год"
+if pet_age % 10 == 1 and pet_age % 100 != 11:
+    age_suffix = "год"
+elif pet_age % 10 in [2, 3, 4] and not (pet_age % 100 in [12, 13, 14]):
+    age_suffix = "года"
+else:
+    age_suffix = "лет"
+
+# Добавляем информацию о питомце в словарь
+pets[pet_name] = {
+    'Вид питомца': pet_type,
+    'Возраст питомца': pet_age,
+    'Имя владельца': owner_name
+}
+
+# Формируем строку с информацией о питомце
+pet_info = (
+    f"Это {pets[pet_name]['Вид питомца']} по кличке \"{pet_name}\". "
+    f"Возраст питомца: {pets[pet_name]['Возраст питомца']} {age_suffix}. "
+    f"Имя владельца: {pets[pet_name]['Имя владельца']}"
+)
+
+# Выводим информацию о питомце
+print(pet_info)

+ 33 - 0
python_technology_stack/Lesson10/L10Task1.txt

@@ -0,0 +1,33 @@
+# Создаем пустой словарь
+pets = {}
+
+# Запрашиваем информацию у пользователя
+pet_name = input("Введите имя питомца: ")
+pet_type = input("Введите вид питомца: ")
+pet_age = int(input("Введите возраст питомца: "))
+owner_name = input("Введите имя владельца: ")
+
+# Определяем правильное склонение для слова "год"
+if pet_age % 10 == 1 and pet_age % 100 != 11:
+    age_suffix = "год"
+elif pet_age % 10 in [2, 3, 4] and not (pet_age % 100 in [12, 13, 14]):
+    age_suffix = "года"
+else:
+    age_suffix = "лет"
+
+# Добавляем информацию о питомце в словарь
+pets[pet_name] = {
+    'Вид питомца': pet_type,
+    'Возраст питомца': pet_age,
+    'Имя владельца': owner_name
+}
+
+# Формируем строку с информацией о питомце
+pet_info = (
+    f"Это {pets[pet_name]['Вид питомца']} по кличке \"{pet_name}\". "
+    f"Возраст питомца: {pets[pet_name]['Возраст питомца']} {age_suffix}. "
+    f"Имя владельца: {pets[pet_name]['Имя владельца']}"
+)
+
+# Выводим информацию о питомце
+print(pet_info)

+ 9 - 0
python_technology_stack/Lesson10/L10Task2.py

@@ -0,0 +1,9 @@
+# Создаем пустой словарь
+my_dict = {}
+
+# Заполняем словарь
+for num in range(10, -6, -1):
+    my_dict[num] = num ** num
+
+# Выводим словарь
+print(my_dict)

+ 9 - 0
python_technology_stack/Lesson10/L10Task2.txt

@@ -0,0 +1,9 @@
+# Создаем пустой словарь
+my_dict = {}
+
+# Заполняем словарь
+for num in range(10, -6, -1):
+    my_dict[num] = num ** num
+
+# Выводим словарь
+print(my_dict)

+ 34 - 0
python_technology_stack/Lesson13/L13Task1.py

@@ -0,0 +1,34 @@
+import random
+
+def generate_matrix(rows, cols, min_value=-50, max_value=50):
+    """Генерирует матрицу размером rows x cols с случайными значениями в диапазоне от min_value до max_value."""
+    return [[random.randint(min_value, max_value) for _ in range(cols)] for _ in range(rows)]
+
+def add_matrices(matrix1, matrix2):
+    """Складывает две матрицы одинакового размера и возвращает результат."""
+    rows = len(matrix1)
+    cols = len(matrix1[0])
+    return [[matrix1[i][j] + matrix2[i][j] for j in range(cols)] for i in range(rows)]
+
+def print_matrix(matrix):
+    """Выводит матрицу в читаемом формате."""
+    for row in matrix:
+        print(row)
+
+# Пример использования функций
+rows, cols = 10, 10  # Размер матриц
+
+# Генерация двух случайных матриц
+matrix_1 = generate_matrix(rows, cols)
+matrix_2 = generate_matrix(rows, cols)
+
+# Вывод сгенерированных матриц
+print("Matrix 1:")
+print_matrix(matrix_1)
+print("\nMatrix 2:")
+print_matrix(matrix_2)
+
+# Сложение матриц
+matrix_3 = add_matrices(matrix_1, matrix_2)
+print("\nMatrix 3 (Sum of Matrix 1 and Matrix 2):")
+print_matrix(matrix_3)

+ 34 - 0
python_technology_stack/Lesson13/L13Task1.txt

@@ -0,0 +1,34 @@
+import random
+
+def generate_matrix(rows, cols, min_value=-50, max_value=50):
+    """Генерирует матрицу размером rows x cols с случайными значениями в диапазоне от min_value до max_value."""
+    return [[random.randint(min_value, max_value) for _ in range(cols)] for _ in range(rows)]
+
+def add_matrices(matrix1, matrix2):
+    """Складывает две матрицы одинакового размера и возвращает результат."""
+    rows = len(matrix1)
+    cols = len(matrix1[0])
+    return [[matrix1[i][j] + matrix2[i][j] for j in range(cols)] for i in range(rows)]
+
+def print_matrix(matrix):
+    """Выводит матрицу в читаемом формате."""
+    for row in matrix:
+        print(row)
+
+# Пример использования функций
+rows, cols = 10, 10  # Размер матриц
+
+# Генерация двух случайных матриц
+matrix_1 = generate_matrix(rows, cols)
+matrix_2 = generate_matrix(rows, cols)
+
+# Вывод сгенерированных матриц
+print("Matrix 1:")
+print_matrix(matrix_1)
+print("\nMatrix 2:")
+print_matrix(matrix_2)
+
+# Сложение матриц
+matrix_3 = add_matrices(matrix_1, matrix_2)
+print("\nMatrix 3 (Sum of Matrix 1 and Matrix 2):")
+print_matrix(matrix_3)

+ 12 - 0
python_technology_stack/Lesson14/L14Task1.py

@@ -0,0 +1,12 @@
+def print_elements_recursive(my_list, index=0):
+    """Рекурсивно выводит элементы списка от начального индекса до конца, затем выводит сообщение 'Конец списка'."""
+    if index < len(my_list):
+        print(my_list[index])
+        # Рекурсивный вызов для следующего элемента
+        print_elements_recursive(my_list, index + 1)
+    else:
+        print("Конец списка")
+
+# Пример использования функции
+my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
+print_elements_recursive(my_list)

+ 12 - 0
python_technology_stack/Lesson14/L14Task1.txt

@@ -0,0 +1,12 @@
+def print_elements_recursive(my_list, index=0):
+    """Рекурсивно выводит элементы списка от начального индекса до конца, затем выводит сообщение 'Конец списка'."""
+    if index < len(my_list):
+        print(my_list[index])
+        # Рекурсивный вызов для следующего элемента
+        print_elements_recursive(my_list, index + 1)
+    else:
+        print("Конец списка")
+
+# Пример использования функции
+my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
+print_elements_recursive(my_list)

+ 18 - 0
python_technology_stack/Lesson15/L15Task1.py

@@ -0,0 +1,18 @@
+class Transport:
+    def __init__(self, name, max_speed, mileage):
+        self.name = name
+        self.max_speed = max_speed
+        self.mileage = mileage
+
+    def __str__(self):
+        return f"Название автомобиля: {self.name} Скорость: {self.max_speed} Пробег: {self.mileage}"
+
+# Создаем класс Autobus, который наследует от Transport
+class Autobus(Transport):
+    pass
+
+# Создаем объект Autobus
+bus = Autobus("Renaul Logan", 180, 12)
+
+# Выводим информацию об автобусе
+print(bus)

+ 18 - 0
python_technology_stack/Lesson15/L15Task1.txt

@@ -0,0 +1,18 @@
+class Transport:
+    def __init__(self, name, max_speed, mileage):
+        self.name = name
+        self.max_speed = max_speed
+        self.mileage = mileage
+
+    def __str__(self):
+        return f"Название автомобиля: {self.name} Скорость: {self.max_speed} Пробег: {self.mileage}"
+
+# Создаем класс Autobus, который наследует от Transport
+class Autobus(Transport):
+    pass
+
+# Создаем объект Autobus
+bus = Autobus("Renaul Logan", 180, 12)
+
+# Выводим информацию об автобусе
+print(bus)

+ 18 - 0
python_technology_stack/Lesson15/L15Task2.py

@@ -0,0 +1,18 @@
+class Transport:
+    def __init__(self, name, max_speed, mileage):
+        self.name = name
+        self.max_speed = max_speed
+        self.mileage = mileage
+
+    def seating_capacity(self, capacity):
+        return f"Вместимость одного автобуса {self.name} {capacity} пассажиров"
+
+class Autobus(Transport):
+    def seating_capacity(self, capacity=50):
+        return f"Вместимость одного автобуса {self.name}: {capacity} пассажиров"
+
+# Создаем объект Autobus
+bus = Autobus("Renaul Logan", 180, 12)
+
+# Выводим вместимость автобуса
+print(bus.seating_capacity())

+ 18 - 0
python_technology_stack/Lesson15/L15Task2.txt

@@ -0,0 +1,18 @@
+class Transport:
+    def __init__(self, name, max_speed, mileage):
+        self.name = name
+        self.max_speed = max_speed
+        self.mileage = mileage
+
+    def seating_capacity(self, capacity):
+        return f"Вместимость одного автобуса {self.name} {capacity} пассажиров"
+
+class Autobus(Transport):
+    def seating_capacity(self, capacity=50):
+        return f"Вместимость одного автобуса {self.name}: {capacity} пассажиров"
+
+# Создаем объект Autobus
+bus = Autobus("Renaul Logan", 180, 12)
+
+# Выводим вместимость автобуса
+print(bus.seating_capacity())

+ 13 - 0
python_technology_stack/Lesson4/L4Task1.py

@@ -0,0 +1,13 @@
+# Ввод сторон прямоугольника
+side_a = float(input("Введите длину первой стороны прямоугольника: "))
+side_b = float(input("Введите длину второй стороны прямоугольника: "))
+
+# Вычисление площади
+area = side_a * side_b
+
+# Вычисление периметра
+perimeter = 2 * (side_a + side_b)
+
+# Вывод результатов
+print(f"Площадь прямоугольника: {area}")
+print(f"Периметр прямоугольника: {perimeter}")

+ 13 - 0
python_technology_stack/Lesson4/L4Task1.txt

@@ -0,0 +1,13 @@
+# Ввод сторон прямоугольника
+side_a = float(input("Введите длину первой стороны прямоугольника: "))
+side_b = float(input("Введите длину второй стороны прямоугольника: "))
+
+# Вычисление площади
+area = side_a * side_b
+
+# Вычисление периметра
+perimeter = 2 * (side_a + side_b)
+
+# Вывод результатов
+print(f"Площадь прямоугольника: {area}")
+print(f"Периметр прямоугольника: {perimeter}")

+ 15 - 0
python_technology_stack/Lesson4/L4Task2.py

@@ -0,0 +1,15 @@
+# Ввод пятизначного числа
+number = int(input("Введите пятизначное число: "))
+
+# Извлечение цифр
+ten_thousands = number // 10000
+thousands = (number // 1000) % 10
+hundreds = (number // 100) % 10
+tens = (number // 10) % 10
+units = number % 10
+
+# Арифметические операции
+result = (tens ** units) * hundreds / (ten_thousands - thousands)
+
+# Вывод результата
+print(f"Результат вычислений: {result}")

+ 15 - 0
python_technology_stack/Lesson4/L4Task2.txt

@@ -0,0 +1,15 @@
+# Ввод пятизначного числа
+number = int(input("Введите пятизначное число: "))
+
+# Извлечение цифр
+ten_thousands = number // 10000
+thousands = (number // 1000) % 10
+hundreds = (number // 100) % 10
+tens = (number // 10) % 10
+units = number % 10
+
+# Арифметические операции
+result = (tens ** units) * hundreds / (ten_thousands - thousands)
+
+# Вывод результата
+print(f"Результат вычислений: {result}")

+ 22 - 0
python_technology_stack/Lesson5/L5Task1.py

@@ -0,0 +1,22 @@
+# Ввод числа
+number = int(input("Введите целое число: "))
+
+# Определение строки-описания числа
+if number == 0:
+    description = "нулевое число"
+elif number > 0:
+    if number % 2 == 0:
+        description = "положительное четное число"
+    else:
+        description = "положительное нечетное число"
+else:
+    if number % 2 == 0:
+        description = "отрицательное четное число"
+    else:
+        description = "отрицательное нечетное число"
+
+# Проверка на четность
+if number % 2 != 0:
+    print("Число не является четным")
+else:
+    print(description)

+ 22 - 0
python_technology_stack/Lesson5/L5Task1.txt

@@ -0,0 +1,22 @@
+# Ввод числа
+number = int(input("Введите целое число: "))
+
+# Определение строки-описания числа
+if number == 0:
+    description = "нулевое число"
+elif number > 0:
+    if number % 2 == 0:
+        description = "положительное четное число"
+    else:
+        description = "положительное нечетное число"
+else:
+    if number % 2 == 0:
+        description = "отрицательное четное число"
+    else:
+        description = "отрицательное нечетное число"
+
+# Проверка на четность
+if number % 2 != 0:
+    print("Число не является четным")
+else:
+    print(description)

+ 20 - 0
python_technology_stack/Lesson5/L5Task2.py

@@ -0,0 +1,20 @@
+# Ввод слова
+word = input("Введите слово из маленьких латинских букв: ")
+
+# Гласные и согласные буквы
+vowels = "aeiou"
+consonants_count = 0
+vowels_count = {v: 0 for v in vowels}
+
+# Подсчет гласных и согласных букв
+for letter in word:
+    if letter in vowels:
+        vowels_count[letter] += 1
+    else:
+        consonants_count += 1
+
+# Проверка наличия всех гласных
+if all(vowels_count[v] > 0 for v in vowels):
+    print(f"Гласные: {sum(vowels_count.values())}, Согласные: {consonants_count}")
+else:
+    print(False)

+ 20 - 0
python_technology_stack/Lesson5/L5Task2.txt

@@ -0,0 +1,20 @@
+# Ввод слова
+word = input("Введите слово из маленьких латинских букв: ")
+
+# Гласные и согласные буквы
+vowels = "aeiou"
+consonants_count = 0
+vowels_count = {v: 0 for v in vowels}
+
+# Подсчет гласных и согласных букв
+for letter in word:
+    if letter in vowels:
+        vowels_count[letter] += 1
+    else:
+        consonants_count += 1
+
+# Проверка наличия всех гласных
+if all(vowels_count[v] > 0 for v in vowels):
+    print(f"Гласные: {sum(vowels_count.values())}, Согласные: {consonants_count}")
+else:
+    print(False)

+ 16 - 0
python_technology_stack/Lesson5/L5Task3.py

@@ -0,0 +1,16 @@
+# Ввод данных
+X = int(input("Введите минимальную сумму инвестиций: "))
+A = int(input("Введите количество денег у Майкла: "))
+B = int(input("Введите количество денег у Ивана: "))
+
+# Проверка условий вложений
+if A >= X and B >= X:
+    print(2)
+elif A >= X:
+    print("Mike")
+elif B >= X:
+    print("Ivan")
+elif A + B >= X:
+    print(1)
+else:
+    print(0)

+ 16 - 0
python_technology_stack/Lesson5/L5Task3.txt

@@ -0,0 +1,16 @@
+# Ввод данных
+X = int(input("Введите минимальную сумму инвестиций: "))
+A = int(input("Введите количество денег у Майкла: "))
+B = int(input("Введите количество денег у Ивана: "))
+
+# Проверка условий вложений
+if A >= X and B >= X:
+    print(2)
+elif A >= X:
+    print("Mike")
+elif B >= X:
+    print("Ivan")
+elif A + B >= X:
+    print(1)
+else:
+    print(0)

+ 14 - 0
python_technology_stack/Lesson6/L6Task1.py

@@ -0,0 +1,14 @@
+# Ввод числа N
+N = int(input("Введите количество чисел: "))
+
+# Инициализация счетчика нулей
+zero_count = 0
+
+# Цикл для ввода чисел и подсчета нулей
+for _ in range(N):
+    number = int(input())
+    if number == 0:
+        zero_count += 1
+
+# Вывод количества нулей
+print("Количество нулей:", zero_count)

+ 14 - 0
python_technology_stack/Lesson6/L6Task1.txt

@@ -0,0 +1,14 @@
+# Ввод числа N
+N = int(input("Введите количество чисел: "))
+
+# Инициализация счетчика нулей
+zero_count = 0
+
+# Цикл для ввода чисел и подсчета нулей
+for _ in range(N):
+    number = int(input())
+    if number == 0:
+        zero_count += 1
+
+# Вывод количества нулей
+print("Количество нулей:", zero_count)

+ 13 - 0
python_technology_stack/Lesson6/L6Task2.py

@@ -0,0 +1,13 @@
+# Ввод числа X
+X = int(input("Введите натуральное число: "))
+
+# Инициализация счетчика делителей
+divisor_count = 0
+
+# Цикл для подсчета делителей
+for i in range(1, X + 1):
+    if X % i == 0:
+        divisor_count += 1
+
+# Вывод количества делителей
+print("Количество делителей:", divisor_count)

+ 13 - 0
python_technology_stack/Lesson6/L6Task2.txt

@@ -0,0 +1,13 @@
+# Ввод числа X
+X = int(input("Введите натуральное число: "))
+
+# Инициализация счетчика делителей
+divisor_count = 0
+
+# Цикл для подсчета делителей
+for i in range(1, X + 1):
+    if X % i == 0:
+        divisor_count += 1
+
+# Вывод количества делителей
+print("Количество делителей:", divisor_count)

+ 8 - 0
python_technology_stack/Lesson6/L6Task3.py

@@ -0,0 +1,8 @@
+# Ввод чисел A и B
+A = int(input("Введите число A: "))
+B = int(input("Введите число B: "))
+
+# Вывод четных чисел на отрезке от A до B
+for number in range(A, B + 1):
+    if number % 2 == 0:
+        print(number, end=" ")

+ 8 - 0
python_technology_stack/Lesson6/L6Task3.txt

@@ -0,0 +1,8 @@
+# Ввод чисел A и B
+A = int(input("Введите число A: "))
+B = int(input("Введите число B: "))
+
+# Вывод четных чисел на отрезке от A до B
+for number in range(A, B + 1):
+    if number % 2 == 0:
+        print(number, end=" ")

+ 8 - 0
python_technology_stack/Lesson7/L7Task1.py

@@ -0,0 +1,8 @@
+# Ввод строки
+s = input("Введите строку без пробелов: ")
+
+# Проверка на палиндром
+if s == s[::-1]:
+    print("yes")
+else:
+    print("no")

+ 8 - 0
python_technology_stack/Lesson7/L7Task1.txt

@@ -0,0 +1,8 @@
+# Ввод строки
+s = input("Введите строку без пробелов: ")
+
+# Проверка на палиндром
+if s == s[::-1]:
+    print("yes")
+else:
+    print("no")

+ 8 - 0
python_technology_stack/Lesson7/L7Task2.py

@@ -0,0 +1,8 @@
+# Ввод строки
+s = input("Введите строку: ")
+
+# Преобразование строки, замена множественных пробелов на один
+s_modified = ' '.join(s.split())
+
+# Вывод измененной строки
+print(s_modified)

+ 8 - 0
python_technology_stack/Lesson7/L7Task2.txt

@@ -0,0 +1,8 @@
+# Ввод строки
+s = input("Введите строку: ")
+
+# Преобразование строки, замена множественных пробелов на один
+s_modified = ' '.join(s.split())
+
+# Вывод измененной строки
+print(s_modified)

+ 12 - 0
python_technology_stack/Lesson8/L8Task1.py

@@ -0,0 +1,12 @@
+# Ввод числа N
+N = int(input())
+
+# Ввод чисел и формирование списка
+numbers = [int(input()) for _ in range(N)]
+
+# Переворот списка
+numbers.reverse()
+
+# Вывод перевернутого списка
+for number in numbers:
+    print(number)

+ 12 - 0
python_technology_stack/Lesson8/L8Task1.txt

@@ -0,0 +1,12 @@
+# Ввод числа N
+N = int(input())
+
+# Ввод чисел и формирование списка
+numbers = [int(input()) for _ in range(N)]
+
+# Переворот списка
+numbers.reverse()
+
+# Вывод перевернутого списка
+for number in numbers:
+    print(number)

+ 15 - 0
python_technology_stack/Lesson8/L8Task2.py

@@ -0,0 +1,15 @@
+# Ввод числа N
+N = int(input('Ввод числа N '))
+
+# Ввод элементов массива
+arr = list(map(int, input('Ввод элементов массива в одну строку через пробел ').split()))
+
+# Смещение элементов массива
+if N > 0:
+    # Перемещаем последний элемент на начало и остальные элементы сдвигаем вправо
+    shifted_arr = [arr[-1]] + arr[:-1]
+else:
+    shifted_arr = arr
+
+# Вывод измененного массива
+print(" ".join(map(str, shifted_arr)))

+ 15 - 0
python_technology_stack/Lesson8/L8Task2.txt

@@ -0,0 +1,15 @@
+# Ввод числа N
+N = int(input('Ввод числа N '))
+
+# Ввод элементов массива
+arr = list(map(int, input('Ввод элементов массива в одну строку через пробел ').split()))
+
+# Смещение элементов массива
+if N > 0:
+    # Перемещаем последний элемент на начало и остальные элементы сдвигаем вправо
+    shifted_arr = [arr[-1]] + arr[:-1]
+else:
+    shifted_arr = arr
+
+# Вывод измененного массива
+print(" ".join(map(str, shifted_arr)))

+ 26 - 0
python_technology_stack/Lesson8/L8Task3.py

@@ -0,0 +1,26 @@
+# Ввод максимальной массы, которую может выдержать лодка
+m = int(input())
+
+# Ввод числа рыбаков
+n = int(input())
+
+# Ввод весов рыбаков
+weights = [int(input()) for _ in range(n)]
+
+# Сортировка весов рыбаков
+weights.sort()
+
+# Инициализация указателей и счетчика лодок
+left = 0
+right = n - 1
+boats = 0
+
+# Перебор весов рыбаков
+while left <= right:
+    if weights[left] + weights[right] <= m:
+        left += 1
+    right -= 1
+    boats += 1
+
+# Вывод минимального количества лодок
+print(boats)

+ 26 - 0
python_technology_stack/Lesson8/L8Task3.txt

@@ -0,0 +1,26 @@
+# Ввод максимальной массы, которую может выдержать лодка
+m = int(input())
+
+# Ввод числа рыбаков
+n = int(input())
+
+# Ввод весов рыбаков
+weights = [int(input()) for _ in range(n)]
+
+# Сортировка весов рыбаков
+weights.sort()
+
+# Инициализация указателей и счетчика лодок
+left = 0
+right = n - 1
+boats = 0
+
+# Перебор весов рыбаков
+while left <= right:
+    if weights[left] + weights[right] <= m:
+        left += 1
+    right -= 1
+    boats += 1
+
+# Вывод минимального количества лодок
+print(boats)

+ 11 - 0
python_technology_stack/Lesson9/L9Task1.py

@@ -0,0 +1,11 @@
+# Ввод количества чисел
+N = int(input('Ввод количества чисел'))
+
+# Ввод чисел и преобразование их в список
+numbers = list(map(int, input('Ввод чисел в одну строку через пробел').split()))
+
+# Создание множества для хранения уникальных чисел
+unique_numbers = set(numbers)
+
+# Вывод количества уникальных чисел
+print(len(unique_numbers))

+ 11 - 0
python_technology_stack/Lesson9/L9Task1.txt

@@ -0,0 +1,11 @@
+# Ввод количества чисел
+N = int(input('Ввод количества чисел'))
+
+# Ввод чисел и преобразование их в список
+numbers = list(map(int, input('Ввод чисел в одну строку через пробел').split()))
+
+# Создание множества для хранения уникальных чисел
+unique_numbers = set(numbers)
+
+# Вывод количества уникальных чисел
+print(len(unique_numbers))

+ 15 - 0
python_technology_stack/Lesson9/L9Task2.py

@@ -0,0 +1,15 @@
+# Ввод количества чисел в первом списке
+N1 = int(input('Ввод количества чисел в первом списке'))
+# Ввод чисел первого списка
+list1 = set(int(input('число первого списка')) for _ in range(N1))
+
+# Ввод количества чисел во втором списке
+N2 = int(input('Ввод количества чисел во втором списке'))
+# Ввод чисел второго списка
+list2 = set(int(input('число второго списка')) for _ in range(N2))
+
+# Нахождение пересечения двух множеств
+intersection = list1 & list2
+
+# Вывод количества чисел в пересечении
+print(len(intersection))

+ 15 - 0
python_technology_stack/Lesson9/L9Task2.txt

@@ -0,0 +1,15 @@
+# Ввод количества чисел в первом списке
+N1 = int(input('Ввод количества чисел в первом списке'))
+# Ввод чисел первого списка
+list1 = set(int(input('число первого списка')) for _ in range(N1))
+
+# Ввод количества чисел во втором списке
+N2 = int(input('Ввод количества чисел во втором списке'))
+# Ввод чисел второго списка
+list2 = set(int(input('число второго списка')) for _ in range(N2))
+
+# Нахождение пересечения двух множеств
+intersection = list1 & list2
+
+# Вывод количества чисел в пересечении
+print(len(intersection))

+ 13 - 0
python_technology_stack/Lesson9/L9Task3.py

@@ -0,0 +1,13 @@
+# Ввод последовательности чисел
+numbers = map(int, input('Ввод последовательности чисел через пробел ').split())
+
+# Множество для хранения ранее встреченных чисел
+seen_numbers = set()
+
+# Обработка каждого числа в последовательности
+for number in numbers:
+    if number in seen_numbers:
+        print("YES")
+    else:
+        print("NO")
+        seen_numbers.add(number)

+ 13 - 0
python_technology_stack/Lesson9/L9Task3.txt

@@ -0,0 +1,13 @@
+# Ввод последовательности чисел
+numbers = map(int, input('Ввод последовательности чисел через пробел ').split())
+
+# Множество для хранения ранее встреченных чисел
+seen_numbers = set()
+
+# Обработка каждого числа в последовательности
+for number in numbers:
+    if number in seen_numbers:
+        print("YES")
+    else:
+        print("NO")
+        seen_numbers.add(number)