Python은 tkinter 모듈을 사용해서 GUI형식으로 프로그램을 만들 수 있다.
그래서 이번에는 GUI 계산기를 만들건데, 비트연산, 진법 변환 및 기본적인 연산도 가능하도록 기능을 넣은 계산기를 만들어보려고 한다.
( //주의 // 아래 내용부터는 구글링해서 찾은 코드를 많이 참고한 내용이다. )
먼저 모듈을 임포트 해주고 사용할 변수들을 초기화해준다.
title명으로 실행하면 나타나는 창 왼쪽 위의 제목을 변경할 수 있다.
geometry로 창 크기를 조절할 수 있다.
숫자를 입력할 창 크기와 위치를 지정해준다.
이제 함수 설명을 하려고 한다.
button_pressed 함수
value 매개변수로 가져와서 AC 버튼이 눌렸을 때 숫자 창의 모든 것을 지우고 answer_trigger 변수도 초기화 시킨 후 AC pressed 문구를 출력한다.
그외에
answer_trigger 변수가 True이면 초기화 하고 False로 해주고 pressed 문구를 출력시킨다.
float_filter함수
예외처리를 위한 함수로 ValueError가 발생시 float로 반환해주는 함수이다.
int_changer 함수
사용자가 계산하고 싶은 숫자를 입력하면 계산할 두 숫자를 비교해서 같으면 int로 반환하고 다르면 float로 반환시키는 함수이다. 두 숫자가 같으면 정수로 표현가능하기 때문에 따로 int형으로 반환시키는 것이다.
math_button_pressed 함수
이 함수는 일반적인 사칙연산과 비트 연산을 할 때 사용하는 함수이다.
temp_number 변수를 사용해 사용자가 입력할 두 숫자 중에 먼저 입력한 숫자를 저장한다.
system_button_pressed 함수
이 함수는 진법 변환 기능에서 사용할 함수이다.
진법 변환 시에는 사용자가 하나의 숫자만 입력해서 숫자 입력 칸을 비울 필요가 없어 따로 작성했다.
equal_button_pressed 함수
계산기 버튼 중 '=' 버튼이 눌렀을 때 사용하는 함수이다.
사칙연산과 비트 연산자가 눌렀을 경우에는 사용자가 숫자를 두 번 입력하기 때문에 print부분에서 number을 출력해주는데, 진법 변환에서는 숫자가 한번만 나타나면 되므로 number을 print해주지 않았다.
각 연산에 맞게 solution 변수에 계산 식을 써넣었는데, 진법 변환시 숫자 앞에 알파벳으로 어떤 진법인지 나타내기 때문에 다른 연산들과 달리 int_changer 함수를 삭제해주었다.
버튼들은 다음과 같이 나타내주었다.
lambda : 를 사용해서 각 버튼에 맞는 함수를 지정해주었다.
실행화면
참고)
opentutorials.org/module/2980/17973
'language > python' 카테고리의 다른 글
[Python] 네이버 웹툰 날짜별 만화들 파싱해서 리스트 띄우기 (0) | 2020.09.29 |
---|---|
[Python] pwntools 기능 공부 및 정리 (0) | 2020.09.15 |
[Python] 소켓프로그래밍으로 1:1 채팅 구현 (0) | 2020.09.08 |
[Python] 네이버 실시간 검색어 크롤러 만들기 (0) | 2020.09.08 |
댓글