Page 43 - 파이썬으로 배우는 컴퓨팅사고 도서 미리보기
P. 43
Thinking! CHAPTER 9? 기술(Technology) 227
4. 같은 키가 계속 눌러져 있을 경우 키가 눌러졌음을 나타내는 이벤트가 계속 발생하여
onkeypress()에 의해 해당 키의 콜백 함수가 계속 호출된다. 콜백 함수가 호출되더라도
disp_num() 함수 내에서 같은 키가 계속 눌러졌을 경우에는 아무런 동작도 하지 않고 함수를
종료하고, 다른 키가 눌러졌을 경우에만 개별 LED를 출력하도록 프로그램을 변경하면 된다.
기존 프로그램에서 변경되는 부분은 다음과 같다.
import turtle as t
old_key = 0 # 이전에 눌렀던 키 값 보관
...
def disp_num(k):
global old_key # 전역변수 선언
t.shape(s7seg_base)
t.stamp()
if k != old_key: # 현재 키 k가 old_key와 같지 않으면
if k < 10:
for i in range(7):
if s7seg_num[k][i] == 1:
t.shape(s7seg_led[i])
t.stamp()
old_key = k # 현재 키를 이전 키로 보관
...