Программа курса:
Разбор задачи: Fizz Buzz
Предложенный нами код решения:
def fizz_buzz(n):
"""
:param n: целое число
:return: список строк с результатами для чисел от 1 до n
"""
result = []
for i in range(1, n + 1):
if i % 3 == 0 and i % 5 == 0:
result.append("FizzBuzz")
elif i % 3 == 0:
result.append("Fizz")
elif i % 5 == 0:
result.append("Buzz")
else:
result.append(str(i))
return resultПояснение шагов:
Инициализация пустого списка:
result = []Мы начинаем с пустого списка
result, в который будем добавлять результаты для каждого числа от 1 до n.Перебор чисел от 1 до n:
for i in range(1, n + 1):В цикле
forперебираем числа от 1 до n, включая n. Для каждого числа выполняются проверки, соответствующие условиям задачи.Условие для чисел, делящихся на 3 и на 5:
if i % 3 == 0 and i % 5 == 0: result.append("FizzBuzz")Для каждого числа сначала проверяется, делится ли оно на 3 и на 5 одновременно (с помощью оператора
%). Если это так, добавляем строку"FizzBuzz"в список.Условие для чисел, делящихся только на 3:
elif i % 3 == 0: result.append("Fizz")Если число делится только на 3, то добавляем строку
"Fizz".Условие для чисел, делящихся только на 5:
elif i % 5 == 0: result.append("Buzz")Если число делится только на 5, то добавляем строку
"Buzz".Если число не делится ни на 3, ни на 5:
else: result.append(str(i))В случае, если число не делится ни на 3, ни на 5, просто добавляем его как строку.
Возврат списка:
return resultПосле завершения цикла возвращается список
result, который содержит все нужные строки для чисел от 1 до n.
Пример работы:
Пример 1:
fizz_buzz(3)
- Перебираются числа 1, 2 и 3.
- Для 1: не делится ни на 3, ни на 5 → добавляем
"1". - Для 2: не делится ни на 3, ни на 5 → добавляем
"2". - Для 3: делится на 3 → добавляем
"Fizz".
Вывод: ["1", "2", "Fizz"].
Пример 2:
fizz_buzz(5)
- Перебираются числа 1, 2, 3, 4 и 5.
- Для 1: не делится → добавляем
"1". - Для 2: не делится → добавляем
"2". - Для 3: делится на 3 → добавляем
"Fizz". - Для 4: не делится → добавляем
"4". - Для 5: делится на 5 → добавляем
"Buzz".
Вывод: ["1", "2", "Fizz", "4", "Buzz"].
Пример 3:
fizz_buzz(15)
- Для чисел 1-15 возвращается:
["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz"].