✅ Решения и объяснения

⚡ Ответы

  • insert(1, "new") даёт [1, "new", 2, 3].
  • extend("grape") добавляет буквы.
  • fruits[1:].remove("banana") меняет копию-срез, исходный список остаётся прежним.
  • remove(10) вызывает ValueError.

Закрепление

1. Правильный ответ: [1, "new", 2, 3]. Индекс 1 — позиция перед текущим элементом 2.

2. Правильный ответ: ["apple", "banana", "g", "r", "a", "p", "e"]. Метод extend() перебирает строку по символам.

3. Правильный ответ: исходный список не изменится. Срез fruits[1:] создаёт новый список, и remove() применяется к нему.

4. Правильный ответ: ошибка ValueError.

Практика 1: начало равно концу

# practice_same_start_end.py
strings = ["apple", "banana", "level", "radar", "grape"]
new_strings = []

for string in strings:
    if string[0] == string[-1]:
        new_strings.append(string)

print("Строки, которые начинаются и заканчиваются одной и той же буквой:", new_strings)

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

Практика 2: слова с гласных

Формулировка источника говорит про согласные, но пример вывода и приведённое решение добавляют ! словам, которые начинаются с гласной. Ниже решение соответствует примеру.

# practice_vowel_words.py
strings = ["apple", "banana", "cherry", "grape", "orange"]
new_strings = []

for string in strings:
    if string[0].lower() in "aeiou":
        string += "!"
    new_strings.append(string)

print("Результат:", new_strings)

ДЗ 1: число в конце

# homework_digits_at_end.py
strings = ["apple23", "ban1ana45", "12cherry", "grape3", "blue23berry"]
result = []

for string in strings:
    index = len(string) - 1
    while index >= 0 and string[index].isdigit():
        index -= 1
    has_digits_at_end = index != len(string) - 1
    prefix = string[:index + 1]
    if has_digits_at_end and not any(char.isdigit() for char in prefix):
        result.append(string)

print("Строки с цифрами только в конце:", result)

ДЗ 2: удаление кратных

# homework_remove_multiples.py
numbers = [1, 3, 6, 9, 10, 12, 15, 19, 20]
divisor = int(input("Введите число для удаления кратных ему элементов: "))
result = []

for number in numbers:
    if number % divisor != 0:
        result.append(number)

print("Список без кратных значений:", result)

ДЗ 3: порядок чётных

# homework_even_order.py
numbers = [5, 2, 3, 8, 4, 1, 2, 7]
even_numbers = []

for number in numbers:
    if number % 2 == 0:
        even_numbers.append(number)

even_numbers.sort(reverse=True)
result = []

for number in numbers:
    if number % 2 == 0:
        result.append(even_numbers.pop(0))
    else:
        result.append(number)

print("Список после сортировки:", result)