Полный текст задания из LMS
1. Прогрессия увеличения
Напишите программу, которая создаёт новый кортеж, состоящий из элементов изначального в том же порядке. Добавить в него только элементы, которые больше всех предыдущих значений в исходном кортеже.
numbers = (3, 7, 2, 8, 5, 10, 1)
Пример вывода:
Кортеж по возрастанию: (3, 7, 8, 10)
2. Повторяющиеся элементы
Напишите программу, которая находит индексы элементов кортежа, встречающихся более одного раза. Вывести сами элементы и их индексы.
numbers = (1, 2, 3, 4, 2, 5, 3, 6, 4, 2, 9)
Пример вывода:
Индексы элемента 2:
1 4 9
Индексы элемента 3:
2 6
Индексы элемента 4:
3 8
Подготовка окружения в VS Code
- Создайте папку
lesson_24_homework. - Откройте её в VS Code.
- Создайте файлы
task_01_progression.pyиtask_02_repeated_indexes.py. - Запускайте каждый файл командой
python task_01_progression.pyили кнопкой Run Python File.
Задача 1: план решения
- Создать исходный кортеж
numbers. - Положить первый элемент в результат: он не имеет предыдущих значений.
- Запомнить первый элемент как текущий максимум.
- Перебирать элементы со второго.
- Если текущий элемент больше
max_value, добавить его в результат и обновить максимум.
numbers = (3, 7, 2, 8, 5, 10, 1)
result = (numbers[0],)
max_value = numbers[0]
for number in numbers[1:]:
if number > max_value:
result += (number,)
max_value = number
print("Кортеж по возрастанию:", result)
Проверка задачи 1
Кортеж по возрастанию: (3, 7, 8, 10)
Если результат содержит 2, 5 или 1, значит проверка сравнивает элемент не с максимумом предыдущих значений, а только с соседним элементом.
Задача 2: план решения
- Создать исходный кортеж
numbers. - Создать пустой кортеж
processedдля элементов, которые уже выводились. - Для каждого числа проверить, встречается ли оно больше одного раза.
- Если число повторяется и ещё не обработано, собрать все его индексы через
enumerate(). - Вывести число и индексы, затем добавить число в
processed.
numbers = (1, 2, 3, 4, 2, 5, 3, 6, 4, 2, 9)
processed = tuple()
for number in numbers:
if numbers.count(number) > 1 and number not in processed:
indexes = tuple()
for index, current in enumerate(numbers):
if current == number:
indexes += (index,)
processed += (number,)
print(f"Индексы элемента {number}:")
print(*indexes)
Проверка задачи 2
Индексы элемента 2:
1 4 9
Индексы элемента 3:
2 6
Индексы элемента 4:
3 8
Если один и тот же элемент выводится несколько раз, проверьте, что после вывода вы добавляете его в processed.
Что отправлять
- Код обеих задач.
- Скриншот или текст вывода из терминала.
- Краткое пояснение, как вы используете
max_value,count()иenumerate().