Рубрики
Без рубрики

Fizz Cooz Coding Code Challenge в Python

Узнайте, как решить знаменитый вызов для кодирования Fizz Bezz в Python. Эта проблема часто появляется в программировании и интервью.

Автор оригинала: Robin Andrews.

Fizz Buzz Это классическая кодировка, основанная на игре, сыгранной в школе в уроках математики.

Fizz Buzz – это игра для двух или более игроков. Возьмите его в очередь, чтобы рассчитывать вслух от 1 до 50, но каждый раз, когда вы собираетесь сказать множественное из 3, замените его слово «Fizz». Для кратных 5, скажем, «Buzz» и для цифр, которые являются кратными как 3 и 5, говорят «Fizz, Buzz».

Идите на написание некоторых Python Code, чтобы имитировать эту игру сейчас. Ваша версия должна просто распечатать номер или «Fizz», «Buzz», или «Fizzbzzz» для каждого из номеров из 1 - 50 Отказ Не волнуйтесь, понимаете ли вы это правильно. Просто попробуй. Вы узнаете много даже если вы не можете заставить его работать, включая понимание того, что не работает!

Прежде чем разделить решение, проверьте эту связанную проблему, чтобы помочь понять некоторые из проблем, которые вы можете столкнуться, когда пытаетесь реализовать FizzCuzz в Python.

Упражнения сорта Python

Использование Если , Элиф и еще Заявления, напишите программу, спрашиваемую пользователю вводить их оценку экзамена из 100. На основе введенного значения программа должна выводить следующие оценки.

49 или ниже E
50-59. D
60-69 C
70-79 B
80 или выше A

Попробуйте сами, если бы вы не могли это сделать, «с закрытыми глазами» (метафорически).

Попытка доблестной кулаки на эту проблему может привести к тому, что что-то подобное:

result = int(input("Please enter your percentage grade: "))
if result < 50:
    print("Grade U")
elif result >= 50:
    print("Grade D")
elif result >= 60:
    print("Grade C")
elif result >= 70:
    print("Grade B")
else:
    print("Grade A")

Можете ли вы увидеть, что не так с этим решением? Вы вполне можете не попасть в проблему, проиллюстрированную этим примером, и, вероятно, будет меньше шансов, если бы я представил оценки в другом порядке, например,

80 или выше A
70-79 B
60-69 C
50-59. D
49 или ниже U

Еще один совершенно действительный способ передачи потенциальной проблемы состоит в том, чтобы быть очень конкретным в связи с границами для оценок, включая оба конечных точек. Например. Если результат и результат <80 ... (Обратите внимание, что Результат необходимо повторять в этом состоянии – довольно распространенная ошибка будет Если результат и <80 ... не правильно, как < – это двоичный оператор, и нуждается в двух вещах сравнивать!).

Кстати, вот рабочее решение для упражнений классов для справки.

result = int(input("Please enter your percentage grade: "))
if result > 80:
    print("Grade A")
elif result >= 70:
    print("Grade B")
elif result >= 60:
    print("Grade C")
elif result >= 50:
    print("Grade D")
else:
    print("Grade U")

Есть несколько моментов, которые могут быть взяты из этого примера.

Одним из них часто бывают множественные способы достижения такой же цели, особенность с логическими выражениями. Но главный момент для целей этого урока, это идея преждевременное включение Отказ

Что я имею в виду под преждевременное включение ? Ну, в первом решении 100 сорт 100 будет соответствовать условию быть > = 50 так было бы принято как D Оценка и алгоритм закончат, печатая неправильный результат.

Python Fizz Buzz Решение

В контексте упражнения для кодирования Fizzguzz, такая же проблема может возникнуть, как это проиллюстрировано выше. Люди часто тестируют на “Fizzsess” и «Buzzness» перед проверкой на “Fizzgguzzness” , что означает, что результат преждевременно принят на основе одного состояния, когда на самом деле оба условия удерживаются.

Вот пример версии Fizzzbuzz в Python, которая содержит эту ошибку:

for i in range(1, 51):
    if i % 3 == 0:
        print("fizz")
    elif i % 5 == 0:
        print("buzz")
    elif i % 3 == 0 and i % 5 == 0:
        print("fizzbuzz")
    else:
        print(i)

Кстати, если вы не знакомы с Оператор по модулю , вы можете быстро освоить его, используя этот пакет, который я собрал вместе. Оператор модуля является ключом к проблеме Fizzbuzz, а также многих других важных алгоритмов.

  • Урок эксплуатации модуля и рабочий лист £ 12,00 купить сейчас

Хорошо, поэтому мы близки к рабочему решению для Fizzguzz в Python. Я скрыл мое решение, чтобы избежать спойлеров. Как только у вас была действительно хорошая попытка себя, нажмите «Показать решение», чтобы увидеть, как я решил проблему.

for i in range(1, 51):
    if i % 3 == 0 and i % 5 == 0:
        print("fizzbuzz")
    elif i % 5 == 0:
        print("buzz")
    elif i % 3 == 0:
        print("fizz")
    else:
        print(i)

Этот урок исследовал известную проблему кодирования собеседования «Fizzguzzzzzzzzzzzzze», а также некоторые из алгоритмических проблем, которые он представляет. Я надеюсь, что вы нашли это интересно и полезно.

Счастливые вычисления.