def click(key): # = 버튼이 눌렸을 때 계산 수행: if key == "=": try: result = str(eval(display.get()))[0:10] display.insert(END, " = " + result) except: display.insert(END, " --> Error!") # C 버튼이 눌려졌을 때 display 엔트리 위젯 내용 비움: elif key == "C": display.delete(0, END) # 상수 버튼에 대한 작업: elif key == constants_list[0]: display.insert(END, "3.141592654") elif key == constants_list[1]: display.insert(END, "300000000") elif key == constants_list[2]: display.insert(END, "330") elif key == constants_list[3]: display.insert(END, "149597887.5") # 함수 버튼에 대한 작업: elif key == functions_list[0]: n = display.get() # 현재 display 엔트리 위젯 값 수집 display.delete(0, END) # 현재 display 엔트리 위젯 내용 비움 display.insert(END, calc_functions.factorial(n)) elif key == functions_list[1]: n = display.get() # 현재 display 엔트리 위젯 값 수집 display.delete(0, END) # display 엔트리 위젯 내용 비움 display.insert(END, calc_functions.to_roman(n)) elif key == functions_list[2]: n = display.get() # 현재 display 엔트리 위젯 값 수집 display.delete(0, END) # display 엔트리 위젯 내용 비움 display.insert(END, calc_functions.to_binary(n)) elif key == functions_list[3]: n = display.get() # 현재 display 엔트리 위젯 값 수집 display.delete(0, END) # display 엔트리 위젯 내용 비움 display.insert(END, calc_functions.from_binary(n)) # 그 외 다른 키를 눌렀을 때 실행될 기본 동작: else: display.insert(END, key)
def click(key): global target global counter global start_time global game_state # = 버튼이 눌렸을 때 계산 수행: if key == "=": try: result = str(eval(display.get()))[0:10] display.insert(END, " = " + result) except: display.insert(END, " --> 오류!") # C 버튼이 눌려졌을 때 display 엔트리 위젯 내용 비움: elif key == "C": display.delete(0, END) # 상수 버튼에 대한 작업: elif key == constants_list[0]: display.insert(END, "3.141592654") elif key == constants_list[1]: display.insert(END, "300000000") elif key == constants_list[2]: display.insert(END, "330") elif key == constants_list[3]: display.insert(END, "149597887.5") # 함수 버튼에 대한 작업: elif key in functions_list: n = display.get() # 현재 display 엔트리 위젯 값 수집 display.delete(0, END) # 현재 display 엔트리 위젯 내용 비움 if key == functions_list[0]: display.insert(END, calc_functions.factorial(n)) elif key == functions_list[1]: display.insert(END, calc_functions.to_roman(n)) elif key == functions_list[2]: display.insert(END, calc_functions.to_binary(n)) else: display.insert(END, calc_functions.from_binary(n)) # 다른 버튼이 눌리면 현재 항목의 끝에 값을 추가합니다: #### 진행 시간 #### elif key == "play": # game_button이 눌렸을때 게임을 시작합니다. if game_state == "not_playing": game_button["text"] = "종료" target = random.randint(0, 9) bin_target = bin(target)[2:] display.delete(0, END) display.insert(END, bin_target) start_time = time.time() counter = 0 game_state = "playing" else: # game_state == "playing"와 같고 게임을 종료하려고 할 때 실행됩니다. game_button["text"] = "진행 시간" display.delete(0, END) counter = 0 game_state = "not_playing" elif game_state == "playing": # 게임을 진행하고 있을 때 if counter == 10: display.delete(0, END) achieved_time = (time.time() - start_time) achieved_time = str(achieved_time)[:5] # 문자열의 5자리까지만 잘라냅니다. message = "잘했습니다. 10번 중 " + achieved_time + "번 만에 성공하셨습니다" display.insert(END, message) counter = 0 game_button["text"] = "진행 시간" game_state = "not_playing" elif key.isdigit() and key == str(target): display.delete(0, END) # display 엔트리 위젯 내용 비움 target = random.randint(0, 9) bin_target = bin(target)[2:] display.insert(END, bin_target) counter = counter + 1 else: display.insert(END, " 웁스! ") #### 진행 시간을 초과했을 때 # 그 외 다른 키를 눌렀을 때 실행될 기본 동작: else: display.insert(END, key)