기능 함수 구현 - 숫자넣기2
배우기
11 파이썬 - 컴퓨터앱
기능 함수 구현 - 숫자넣기2
Python
1
2
3
4
5
6
7
8
9
# 숫자와 소수점 처리
def num_input(self, who) :
    # 오류가 발생한 경우 초기화
	if self.new == '오류!' :
        self.new = '0'
        self.old = ''
        self.operator = ''

....

혹시 에러가 발생할 수도 있으니까 이런 부분도 추가해놓을까요? new에 "오류!" 가 담겨 있을 때는 모든 값을 초기화하는 거예요.

Python
# =를 누르면 초기화
if self.operator == '=' :
    self.new = '0'
    self.operator = ''

[ = ] 가 눌러지면 결과가 나와야 하니 결과 출력 후 내용을 초기화해주어야 하겠죠?

Python
# 이전 값은 없고, 연산자가 있을 경우 이전 값에 현재 값을 대입하고, 현재 값 새로 입력.
if self.old == '' and self.operator != '' :
    self.old = self.new
    if who == '.' :
        self.new = '0.'
    else :
        self.new = who

이전 값이 없을 때 연상자가 있는 경우도 처리해야겠죠?

위에서 if를 사용했으니 처음 추가했던 부분은 else로 처리해 주어야겠네요.

자 이제 완성되었습니다.

Python
    # 숫자와 소수점 처리
    def num_input(self, who) :
        # 오류가 발생한 경우 초기화
        if self.new == '오류!' :
            self.new = '0'
            self.old = ''
            self.operator = ''
        # 계산 후 숫자를 누르면 초기화
        if self.operator == '=' :
            self.new = '0'
            self.operator = ''
        # 이전 값은 없고, 연산자가 있을 경우 이전 값에 현재 값을 대입하고, 현재 값 새로 입력.
        if self.old == '' and self.operator != '' :
            self.old = self.new
            if who == '.' :
                self.new = '0.'
            else :
                self.new = who
        # 일반적인 경우
        else :
            # 소수점일 경우 현재 값에 소수점이 없을 때만 소수점 입력.
            if who == '.' :
                if '.' not in self.new :
                    self.new = self.new + who
            else :
                # 현재 값이 0일 경우 숫자를 누르면 그 숫자가 바로 입력.
                if self.new == '0' :
                    self.new = who
                else :
                    self.new = self.new + who
        self.updateUi(self.new)
질문하기
추가 자료
no files uploaded

추가 자료가 없습니다

여기서 새로운 학습 자료를 확인하세요!
선생님이 추가한 자료들을 바로 확인할 수 있어요.