(495)240-8280ПН-СБ с 12:00 до 20:00
We speak English

Урок 3.3. Нажми на кнопку...

В рамках данного урока вы научитесь использовать функцию, с помощью которой можно завершить цикл при нажатии на кнопку. Эта функция доступна в языке TI-Nspire, поэтому для программирования на Python вам придется подгружать один или несколько специальных модулей.

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

  • Использовать функцию get_key() для завершения цикла
  • Работать со степенями чисел 2 и 1/2
  • Использовать функцию sleep(n) для приостановки выполнения кода на n секунд

Так как вы уже умеете работать с циклом оператора while, давайте попробуем использовать эффективную и интересную функцию системы TI-Nspire Python - get_key(). Вам необходимо написать программу, которая будет последовательно отображать степени числа 2 (например, 2, 4, 8, 16, 32, 64...), и этот процесс будет продолжаться до тех пор, пока пользователь не нажмет на кнопку esc.

Примечание для учителя: функция get_key() включена в модуль ti_system. Она очень часто используется при работе с программами рисования и построения графиков (мы об этом расскажем в последующих уроках) и программами для микроконтроллера TI-Innovator™ Hub (об этом устройстве в данном курсе рассказано не будет).
Выражение from ti_system import get_key позволяет использовать данную функцию в любой программе. В этом модуле есть много других функций. Для дополнительной информации можете ознакомиться с документацией на сайте.
Операторы get_key() или get_key(0) проверяют, нажата ли определенная кнопка, при этом выполнение программы не прекращается.
Функция get_key(1) приостанавливает программу и ожидает нажатия на соответствующую кнопку.

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

2. Используйте меню: menu > More Modules > TI System, чтобы вставить следующее выражение:

from ti_system import *

Его можно найти вверху списка.

В том же самом меню выберите следующее выражение:

while get_key() != "esc":

block

3. Теперь вставьте переменную num = 2 непосредственно перед выражением while.

4. В блоке цикла (block) добавьте функцию ввода числа print и оператор присваивания, который будет умножать число на 2. Не забудьте структурировать свои операторы.

Попытайтесь сделать это самостоятельно перед тем, как приступить к проверке кода в следующем шаге...

Примечание для учителя: Для этого используются выражения num=num*2 или num*=2.

5. Вот, что должно получиться...

while get_key() != "esc":

print(num)

num = num * 2

Запустите программу и нажмите на кнопку esc, если нужно ее остановить.

6. Вычисление будет происходить очень быстро!

Обратите внимание на две интересные особенности Python:

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

Ваша следующая задача - приостановить процесс вычисления, чтобы удобно было следить за числами.

7. Для этого вам понадобится функция sleep(), ее можно найти в модуле Python, который называется time.

Вверху своей программы добавьте следующее выражение:

from time import sleep

его можно найти в меню: menu > More Modules > Time, пункт time будет сверху.

8. Под выражением num = num * 2 добавьте следующий оператор:

sleep(1)

все это находится в блоке оператора while (и все три выражения в нем необходимо структурировать).

Снова запустите программу. На этот раз после того, как будет отображаться каждое число, компьютер будет останавливаться (и ждать) на одну секунду, а потом продолжит выполнять последовательность цикла. Можете изменить время паузы в выражении sleep, чтобы процесс шел немного быстрее. Снова нажмите esc, чтобы завершить выполнение программы. Попробуйте вписать и другие значения для оператора sleep(), чтобы изменять время отображения.

В конце программы напишите Done (Выполнено).

9. Замените каждую 2 в программе на 0.5.

  • Что произойдет?
  • Попробуйте ввести и другие цифры.
  • В каких случаях числа увеличиваются, а в каких уменьшаются?
  • Что вы можете сказать об отрицательных числах?
  • Имеет ли смысл подставлять 0 или 1 вместо 2?

А теперь попробуйте сделать следующее: замените выражение num = num * 2 на num *= 2.

Данная операция быстрого ввода выполняет то же самое действие и доступна для работы со многими другими математическими операторами.

Примечание для учителя: Функции get_key() и sleep() являются дополнительными в программировании на языке Python, и этим они делают процесс работы разнообразнее и интереснее. Модуль time - это стандартный модуль Python, в котором содержатся и другие функции, связанные с управлением временем операций. Модуль ti_system является модулем Texas Instruments, он создан для работы только с операционной системой TI-Nspire CX II-Т.