일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- function #사용자 정의 함수
- DB #mariaDB #SQL
- NameSpace #NS
- Excel #엑셀
- PODS #POD #pods #pod #파드 #재기동 #롤링재기동 #rolling
- Node #POD #Container
- lenova #레노버 #노트북
- OCP
- jmap #jstack
- bootstrap #css #CSS
- dify
- lvm #lv #vg #pv
- dump #jattach
- Python #pakage
- Kafka #카프카
- Swap Memory
- 네트워크 #NW
- Grid #CSS
- test #비교
- EKS
- 백준 #10430
- Linux #wc
- jgrp000032 #ocp #
- CI #CD #CI/CD
- shell #shell script
- 오블완
- publishnotreadyaddress
- istio #k8s #kubernetes
- 티스토리챌린지
- EFK
Archives
- Today
- Total
BEOM_IT
계산기 만들기 본문
728x90
반응형
python 터미널 창에서 이용할 계산기는 간단하게 아래와 같이 만든다..
# 계산기 만들기
# 입력받고 계산 = eval 로 입력받은 값 계산
n=input("계산식 입력:")
print(n,"= {}".format(eval(n)))
하지만 뭔가 느낌을 살리기위해 GUI로 만들기위해 tkinter라는 라이브러리를 이용해보기러했다.
# 계산기 GUI
# 설계 = 메인필드,입력필드,결과,버튼
# 계산기 기능은 cal.py참고
# tkinter 라이브러리 사용해 GUI설계
import tkinter as tk
# 계산기능 python으로 동작하다보니 제곱은 ** 등으로 처리가능
def cal():
# try except 구문으로 처리 중 에러 제거
try:
result=eval(expression.get("1.0",tk.END))
result_label.config(text=str(result))
# Error처리
except Exception as e:
result_label.config(text="Error")
# 처리 완료 후 처음상태로
def clear():
expression.delete("1.0",tk.END)
result_label.config(text="")
# 버튼 구현 (내 노트북에 맞게)
buttons =[
'7','8','9','+',
'4','5','6','-',
'1','2','3','*',
'C','0','=','/'
]
# window 만들고 타이틀
main=tk.Tk()
main.title("계산기")
# 수식입력용 text
expression=tk.Text(main,height=3,width=20,font=('',20),)
expression.grid(row=0,column=0,columnspan=4,sticky="nsew")
# 결과값 표시
result_label=tk.Label(main,text="?정답?",height=2,width=20,font=('',20),bg="yellow")
result_label.grid(row=1,column=0,columnspan=4,sticky="nsew")
# click시 돌아가게
def click(value):
# = 누를시 계산
if value=="=":
cal()
# 원복
elif value=="C":
clear()
# 그 외는 계산식 생성
else:
expression.insert(tk.END,value)
# 모양이쁘게 행열 설정
row=2
col=0
# buttons 반복해서 UI로 만들기
for button in buttons:
btn=tk.Button(main,
text=button,
# lambda를 이용해 button클릭시 한번에 계산
command=lambda b=button: click(b),
width=10,height=8)
btn.grid(row=row,column=col,sticky="nsew")
main.grid_rowconfigure(row,weight=1)
main.grid_columnconfigure(col,weight=1)
# 행row/열col 증가
col+=1
if col>3:
col=0
row+=1
# window 작동 x누를때 까지 안꺼짐
main.mainloop()
728x90
반응형
'Language > Python' 카테고리의 다른 글
숫자야구 (0) | 2024.04.17 |
---|---|
서울시 미세먼지 데이터 가져오기 (0) | 2024.04.09 |
웹 크롤링 - 네이버 증권정보 빼오기 (0) | 2024.04.09 |
로또 번호 추첨기 [Python] (0) | 2023.09.15 |
숫자야구 [Python] (0) | 2023.09.15 |