(495) 240-82-80ПН-СБ с 10:00 до 18:00
We speak English

3.4. Практикум: Тик-Так

В данном уроке вы немного развлечетесь и напишете программу, демонстрирующую отображение слов "Тик" и "Так" вместо цифр.

Вы научитесь:

  • Создавать цикл с условием while, который можно завершать двумя способами
  • Определять функцию, проверяющую числа на "кратность"

FizzBuzz (Тик-Так)

Давайте напишем программу для ввода нескольких натуральных чисел (1, 2, 3...), при условии, что...

  • Если число кратно 3, вы отобразите слово Fizz (Тик).
  • Если число кратно 5, вы отобразите слово Buzz (Так).
  • Если число кратно и 3, и 5, вы отобразите слово FizzBuzz (Тик-Так).

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

"Кратность" числа проверяется с помощью оператора % (модуль или остаток).

Существует также и другая форма условия if, которую вы также можете использовать:

if <condition>: (<условие>)
<true block1> (<блок1 верен>)

elif <another condition>: (<другое условие>)
<true block2> (<блок2 верен>)

Блоков elif может быть несколько, выражение elif - сокращение от else if
<more elifs?> (<еще elif>)

else:
<false block> (<неверный блок>)
Этот блок будет выполняться при условии, что все остальные неверны.

1. Начните работу с создания нового файла Python, тип файла - "Пустая программа" (blank program).

Вам понадобится выражение get_key(), а пока добавьте следующее:

from ti_system import *

Это выражение можно найти в меню: menu > More Modules > TI System.

2. Задайте переменную, которая будет представлять счет цифр, начиная с 1.

3. Используйте структуру while get_key()!=0:.

Ее можно найти в меню: menu > More Modules > TI System.

4. Используйте структуру if..elif..else, которую также можно найти через меню:

menu > Built-ins > Control.

Помните, что все это работает по следующей схеме:

if <this is true>: (<если верно>)
<do this> (<выполнить следующее>)

elif <this is true>: (<если верно>) (elif- это сокращение от else if...)
<do this> (выполнить следующее)
здесь может быть несколько elif

else:
<do this> (<выполнить следующее>)
когда все другие неверны

Внимание: Не забудьте использовать двойной (а не одиночный =) знак равенства == при написании условия. Вставка неверного знака приведет к синтаксической ошибке. Следует писать if x==5:, а не if x=5:.

В этом вам поможет меню, которое можно вызвать с помощью комбинации ctrl+=.

5. В структуре if..elif..else есть считыватель информации, но в примере некоторые данные опущены.

У оператора if и у каждого оператора elif есть условие, которого нужно придерживаться, и блок, который необходимо обработать, если условие верно. У оператора else: нет условия, поэтому его блок будет обработан при условии, что все остальные неверны.

Выражение counter+=1 - это сокращенная форма выражения counter = counter + 1.

Подсказка: Помните, что при A % B отображается остаток при делении А на В.

6. Пример написанной программы может выглядеть так, как показано на рисунке.

Если вычисление происходит слишком стремительно, и цифры мелькают слишком быстро, используйте функцию sleep() внизу, чтобы замедлить этот процесс.

Функция sleep() находится в модуле time, поэтому не забудьте вставить следующее выражение:

from time import sleep

Какое первое число будет заменено на слово FizzBuzz (Тик-Так)?

Примечание для учителя: Решение задачи (обращайте внимание на порядок написания условий):

from ti_system import *

from time import *

counter = 1

while get_key() != "esc" :

if counter % 3 ==0 and counter % 5==0:

print("FizzBuzz")

elif counter % 5==0:

print("Buzz")

elif counter % 3==0:

print("Fizz")

else:

print(counter)

counter+=1

sleep(.25)