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)