Ответы на разминку
- 1 —
b:False. - 2 —
a:True. - 3 —
b: 7. - 4 —
b: 2. - 5 —
c:"hELLO, WORLd!". - 6 —
b:['Python', ' Java', ' C++'].
Решение задания 1: сложение чисел
📄 task_01_sum.py
raw = input("Введите список чисел через пробел: ")
numbers = []
for item in raw.split():
numbers.append(int(item))
print(f"Сумма чисел: {sum(numbers)}")
Логика: разбиваем строку по пробелам, каждый фрагмент преобразуем в число и суммируем.
💡 Современный вариант:
numbers = [int(x) for x in input("Введите список чисел через пробел: ").split()]
print(f"Сумма чисел: {sum(numbers)}")
Решение задания 2: обратный список
📄 task_02_reverse.py
raw = input("Введите список чисел через пробел: ")
numbers = []
for item in raw.split():
numbers.append(int(item))
reversed_numbers = numbers[::-1]
print(f"Обратный список: {reversed_numbers}")
Логика: преобразуем строку в список чисел и разворачиваем его срезом.
Решение задания 3: сумма чётных и нечётных
📄 task_03_even_odd.py
numbers = [-1, 8, 2, 0, -3, -9, -1, 10, 7, -4]
even_sum = 0
odd_sum = 0
for number in numbers:
if number % 2 == 0:
even_sum += number
else:
odd_sum += number
print(f"Изначальный список: {numbers}")
print(f"Сумма чётных: {even_sum}")
print(f"Сумма нечётных: {odd_sum}")
Решение задания 4: максимальное число
📄 task_04_max.py
numbers = [3, 12, 8, 22, 9, 25, 6, 23, 8, 7]
maximum = numbers[0]
max_index = 0
for i in range(1, len(numbers)):
if numbers[i] > maximum:
maximum = numbers[i]
max_index = i
print(f"Список чисел: {numbers}")
print(f"Наибольшее число: {maximum}")
print(f"Индекс числа: {max_index}")
Решение задания 5: перестановка соседних элементов
📄 task_05_swap.py
numbers = [1, 2, 3, 4, 5]
print(f"Изначальный список: {numbers}")
for i in range(0, len(numbers) - 1, 2):
numbers[i], numbers[i + 1] = numbers[i + 1], numbers[i]
print(f"Список после перестановки: {numbers}")
Решение задания 6: числа и слова
📄 task_06_words_numbers.py
text = "apple 42 banana 3 100 orange"
result = []
for item in text.split():
if item.isdigit():
result.append(int(item))
else:
result.append(item.capitalize())
print(f"Изначальная строка: {text}")
print(f"Результат: {result}")
💡 Современный вариант:
text = "apple 42 banana 3 100 orange"
result = [int(x) if x.isdigit() else x.capitalize() for x in text.split()]
print(f"Результат: {result}")
Решение задания 7: кодирование строки
📄 task_07_rle.py
text = input("Введите строку: ")
if not text:
print("Пустая строка")
else:
encoded = []
current = text[0]
count = 1
for char in text[1:]:
if char == current:
count += 1
else:
encoded.append(current + str(count))
current = char
count = 1
encoded.append(current + str(count))
print(f"Закодированная строка: {''.join(encoded)}")
Решение задания 8: проверка формата email
📄 task_08_email.py
email = input("Введите email: ")
is_valid = (
len(email) > 0
and email[0].isalpha()
and "@" in email
and (email.endswith(".com") or email.endswith(".de"))
)
print(f"Корректный формат? {is_valid}")
Решение задания 9: звёздочки вместо чисел
📄 task_09_stars.py
text = input("Введите строку: ")
result = ""
for char in text:
if char.isdigit():
result += "*"
else:
result += char
print(f"Результат: {result}")
💡 Современный вариант:
text = input("Введите строку: ")
result = "".join("*" if char.isdigit() else char for char in text)
print(f"Результат: {result}")
Решение задания 10: развернуть слова
📄 task_10_reverse_words.py
text = input("Введите строку: ")
words = text.split()
reversed_words = []
for word in words:
reversed_words.append(word[::-1])
result = " ".join(reversed_words)
print(f"Результат: {result}")
💡 Современный вариант:
text = input("Введите строку: ")
result = " ".join(word[::-1] for word in text.split())
print(f"Результат: {result}")
Решение задания 11: количество символов
📄 task_11_char_types.py
text = input("Введите строку: ")
letters = 0
digits = 0
spaces = 0
others = 0
for char in text:
if char.isalpha():
letters += 1
elif char.isdigit():
digits += 1
elif char.isspace():
spaces += 1
else:
others += 1
print(f"Буквы: {letters}")
print(f"Цифры: {digits}")
print(f"Пробелы: {spaces}")
print(f"Остальные символы: {others}")
Решение задания 12: по одному пробелу
📄 task_12_single_space.py
text = " Hello, World! How are you? "
result = " ".join(text.split())
print(f"Строка: '{text}'")
print(f"Результат: '{result}'")
Решение задания 13: все позиции подстроки
📄 task_13_all_positions.py
text = "Banana bAnana baNAna"
substring = "ban"
search_text = text.lower()
search_substring = substring.lower()
start = 0
positions = []
while True:
position = search_text.find(search_substring, start)
if position == -1:
break
positions.append(position)
start = position + 1
print(f"Строка: {text}")
print(f"Подстрока: {substring}")
for position in positions:
print(f"Позиция: {position}")
Решение задания 14: корректные имена
📄 task_14_valid_names.py
names = ["Alice", "bob", "Charlie", "dave", "Eva", "Frank123"]
print("Имена с заглавной буквы и без цифр:")
for name in names:
if name[0].isupper() and name.isalpha():
print(name)
💡 Современный вариант:
names = ["Alice", "bob", "Charlie", "dave", "Eva", "Frank123"]
valid = [name for name in names if name[0].isupper() and name.isalpha()]
print("Имена с заглавной буквы и без цифр:")
print("\n".join(valid))
Решение задания 15: квадрат чисел
📄 task_15_square_numbers.py
text = "I have 2 apples and 4 bananas"
words = text.split()
for i in range(len(words)):
if words[i].isdigit():
number = int(words[i])
words[i] = str(number * number)
result = " ".join(words)
print(result)
💡 Современный вариант:
text = "I have 2 apples and 4 bananas"
result = " ".join(
str(int(word) ** 2) if word.isdigit() else word
for word in text.split()
)
print(result)
Проверить по документации: list comprehensions, генераторные выражения, f-strings и встроенные функции
sum(), max() в данном контексте выходят за рамки исходного занятия. Они описаны в официальной документации Python.