Найти тему
Skesov

Как решить задачу FizzBuzz на Python (способ структурного программирования)

Добрый день. Я немного удался в изучение программирования, а как-то давно считаю, что если хочешь что-то понять - попробуй объяснить это другому, поэтому впереди будет несколько статей о решении простых (а может и нет) задачек по программированию. И начнём мы с очень популярной задачки для новичков.

Задача:

Напишите программу, которая выводит на экран числа от 1 до 100. При этом вместо чисел, кратных трем, программа должна выводить слово «Fizz», а вместо чисел, кратных пяти — слово «Buzz». Если число кратно и 3, и 5, то программа должна выводить слово «FizzBuzz».

Переходим в удобную для вас среду и начинаем писать нашу простенькую программку.

1. В самом начале предлагаю создать список в которой мы будем помещать наше решение, чтобы вывод выглядел симпатичнее. Для этого в начале программе пишем:

list = []

2. Для начала нам нужен цикл for для перебора чисел от 1 до 100, и собственно сама последовательность чисел. Python гениален в своей простоте и позволяет все это записать в одну строчку:

for i in range(1, 101):

При использовании генератора чисел range, нужно не забывать, что второе число указывается не включительно, поэтому мы прописываем 101, а не выходе получим список от 1 до 100.

3. Внутри цикла for начинаем прописывать нашу логику добавления значений в наш список. И начинаем мы его писать с самого редкого события:

if i%15 == 0:
list.append('FizzBuzz')

Если вы не знаете основной синтаксис, попробую объяснить. В данном месте мы делаем проверку если(if) число i делится на 15 без остатка (оператор % возвращает только остаток от деления).

Дальше мы используем встроенную функцию .append(), чтобы добавить 'FizzBuzz' в список, если условие выполнено.

4. Дальше прописываем условия, если число делится на 3 или 5:

elif i%3 == 0:
list.append('Fizz')
elif i%5 == 0:
list.append('Buzz')

Здесь все примерно то же самое, но используем elif, чтобы оставаться внутри одной инструкции и не иметь дублированных записей при проверках.

5. Последней частью, которую мы вписываем в цикл for нам необходимо вложить число, если оно не попадает в предыдущие условия:

else:
list.append(i)

else - выполняется тогда, когда все предыдущие условия не выполнились, нам это как раз и нужно.

5. Осталось только вывести на экран наш список для этого мы используем функцию print():

print(list)

Теперь можно запустить нашу программу, чтобы проверить результат, а результат должен получиться вот таким:

Результат программы FizzBuzz
Результат программы FizzBuzz

Весь код программы целиком:

list = []
for i in range(1,101):
if i%15 == 0:
list.append('FizzBuzz')
elif i%3 == 0:
list.append('Fizz')
elif i%5 == 0:
list.append('Buzz')
else:
list.append(i)
print(list)

Надеюсь данная статья вам оказалась полезной, подписывайтесь на канал. Пишите в комментариях какие ещё задачки вы хотели бы увидеть. Спасибо за внимание.