Урок 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-Т.