Закрепление
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)