inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

finally

계산값 안나와요,,

252

윤태훈

작성한 질문수 3

1

  1. class BigNumberError(Exception):
    def __init__(self,msg):
        self.msg = msg

    def __str__(self):
        return self.msg

try:
    print("한 자리 숫자 나누기 전용 계산기입니다.")
    num1 = int(input("첫 번쨰 숫자를 입력하세요 : "))
    num2 = int(input("두 번쨰 숫자를 입력하세요 : "))
    if num1 >= 10 or num2 >= 10:
        raise BigNumberError("입력값 : {0}{1}".format(num1, num2))
        print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))
except ValueError:
    print("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요.")
except BigNumberError as err:
    print("에러가 발생하였습니다. 한자리 숫자만 입력하세요.")
    print(err)
finally:
    print("계산기를 이용해주셔서 감사합니다.")
이렇게 했는데 정상적인 값을 적으면 계산값이 안나오는데 어디가 문제가있는걸까요...?

python

답변 2

2

윤태훈

감사합니다. ㅎㅎ 

2

uki020226

try 안에 보면, 

    if num1 >= 10 or num2 >= 10:

num1, num2 둘다 10보다 크거나 같을떄 에만

print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))

이 결과가 나옵니다. 

즉, 10보다 작은 숫자를 입력하면 결과가 나오지 않죠....


그런데, 문제는 

BigNumberError

로 인해서, 10보다 크거나 같은 수를 입력하게 되면,

    print("에러가 발생하였습니다. 한자리 숫자만 입력하세요.")

를 출력하겟지요. 

의도하신대로, 결과가 나오기 위해서는 

print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))

의 구문을 if 바깥으로 뺴서,  작성하시면 됩니다. 그러니까. 10보다 작아도 이 계산을 시행 할 수 있도록,. if 바깥으로 뺴는겁니다. 

그러니까.

    if num1 >= 10 or num2 >= 10:

        raise BigNumberError("입력값 : {0}{1}".format(num1, num2))

    print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))

이렇게요. 

아래의 원문과 비교해보세요. 

    if num1 >= 10 or num2 >= 10:

        raise BigNumberError("입력값 : {0}{1}".format(num1, num2))

        print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))

print가 탭이 어떻게 되어 있는가에 따라 결과가 달라집니다. 

quiz 8 오류 문제

0

78

1

str() 작성 위치

0

64

1

아나콘다

0

74

1

윈도우 설치 도와주세요

0

84

1

std_weight함수에서weight만return가능한가요?

0

74

1

오른쪽위 실행버튼을 누르면 터미널에 에러가 뜨고 컨트롤+F5를 누르면 에러가 안뜹니다.

0

43

1

설치해서 시작하는데 문제가 있습니다.

0

74

1

함수 입력할 때 설명 툴팁 나오게 하려면 어떻게 하나요?

0

118

1

2장 환경설정 문의

0

82

1

스타크래프트 프로젝트

0

84

1

python 파일명.py 입력시 Python 출력

0

145

1

로드맵 질문있습니다!

0

96

2

오류

0

78

1

질문 있습니다.

0

81

1

블로그에 학습한 내용을 정리해도 괜찮을까요?

0

179

1

#퀴즈 3의 5번 질문

0

73

1

print("ㅋ"*5) 에 대한 결과가 도출되지 않습니다

0

86

1

가변인자의 위치가 중요한가요?

0

83

1

vscode옛날 버전 설치

0

234

1

글자색상이 선생님처럼 안나옵니다

0

193

1

슬프네

0

158

1

quiz 6번 관련 문의입니다.

0

136

1

퀴즈#3에 대해서 이렇게 작성해도 되나요?

0

204

1

피드백 부탁드립니다

0

95

1