🎆

003 생선가게 POS기 만들기 - 1

0. 스토리

notion imagenotion image
"판매량이 늘면서 동시에 계산 실수에 대한 건들이 속속 접수되고 있다냥!"
대리인 No.1은 고민했습니다. 냥이들은 대부분 수학을 제대로 배운적이 없어 계산을 잘 못하기 때문이죠.
장기적으로는 냥이들의 수학 교육을 진행하고, 인공지능을 이용해 계산을 자동으로 해주는 프로그램을 개발하며, 지금 가진 기술력으로 가장 빠르게 해결할 수 있는 방법으로는 POS기를 만들기로 결심합니다.
"개발자 대리인들을 모아냥!"

1. 기획

notion imagenotion image

2. 디자인

notion imagenotion image

3. 코드

POS기를 바로 만들기에는 부담이 되니, 우선은 간단한 계산기를 만들어 보도록 하겠습니다. 실행 예제를 먼저 보고 오시면 이해가 쉽습니다.
from PyQt5.QtCore import Qt import sys from PyQt5.QtWidgets import * class 생선가게POS기(QWidget): def __init__(self): super().__init__() self.UI초기화() def UI초기화(self): self.s = '' self.하나 = QPushButton('1') self.하나.clicked.connect(lambda:self.clickedNum('1')) self.더하기 = QPushButton('+') self.더하기.clicked.connect(lambda:self.clickedNum('+')) self.셋 = QPushButton('3') self.셋.clicked.connect(lambda:self.clickedNum('3')) self.등호 = QPushButton('=') self.등호.clicked.connect(self.calc) 세로정렬 = QHBoxLayout() 세로정렬.addWidget(self.하나) 세로정렬.addWidget(self.더하기) 세로정렬.addWidget(self.셋) 세로정렬.addWidget(self.등호) self.setLayout(세로정렬) self.setWindowTitle("계산기") self.show() def clickedNum(self, text): self.s += text print(self.s) def calc(self): print(eval(self.s)) self.s = '' 프로그램무한반복 = QApplication(sys.argv) 실행인스턴스 = 생선가게POS기() 프로그램무한반복.exec_()

4. 상세 내용

여기서는 POS기를 만들기 위한 간단한 프로그램을 먼저 만들어봅니다. 다음 챕터에서는 계산기를 만들어보고, 3번째 챕터에서 POS기를 만들게 됩니다.
이 코드의 핵심 코드는 아래와 같습니다.
def clickedNum(self, text): self.s += text print(self.s) def calc(self): print(eval(self.s)) self.s = ''
여기서는 +연산밖에 없지만 각각의 연산 수식을 문자열로 받아 하나의 수식 문자열로 완성한 다음 eval이라는 내장함수(Built-in functions)를 사용해 문자열을 통한 수식 연산을 합니다.

5. 실행 화면

 
notion imagenotion image