Q. 연산할 숫자 2개와 사칙연산자 한개를 입력받는 계산기를 만들어보자.

 

def 더하기(a, b):
    c = a+b
    return c    #return a+b 랑 같은 뜻

def 빼기(a, b):
    return a-b

def 곱하기(a, b):
    return a*b

def 나누기(a, b): #파이썬은 함수에서 아무값도 반환하지 않으면 None객체 전달됨
    if b !=0:
        return a/b

x=int(input('x='))    #계산할 숫자1
y=int(input('y='))    #계산할 숫자2
res = None     #계산 결과 담을 변수
op = input('사친연산(+, -, *, /):')   #이항연산자

if op == '+':
    res = 더하기(x,y)
elif op == '-':
    res = 빼기(x, y)
elif op == '*':
    res = 곱하기(x, y)
elif op == '/':
    res = 나누기(x, y)

if res == None:     #0으로 나누면 안되기 때문에 따로 None을 잡아줌
    print('잘못된 수식')
else:
    print(x, op, y, '=', res)

out)

 

*사칙연산에서는 0으로 나누게 되면 오류가 발생하기 때문에 res == None 이라는 변수를 미리 잡아주어 연산 오류가 나는 것을 막아준다!

 

 

def 더하기(a, b):
    c = a+b
    return c    #return a+b 랑 같은 뜻

def 빼기(a, b):
    return a-b

def 곱하기(a, b):
    return a*b

def 나누기(a, b): #파이썬은 함수에서 아무값도 반환하지 않으면 None객체 전달됨
    if b !=0:
        return a/b
    else :
        print('잘못된 수식')

x=int(input('x='))    #계산할 숫자1
y=int(input('y='))    #계산할 숫자2
op = input('사친연산(+, -, *, /):')   #연산자

if op == '+':
    res = 더하기(x,y)
    print(x, op, y, '=',res)
elif op == '-':
    res = 빼기(x, y)
    print(x, op, y, '=',res)
elif op == '*':
    res = 곱하기(x, y)
    print(x, op, y, '=',res)
elif op == '/':
    res = 나누기(x, y)
    print(x, op, y, '=',res)

out)

 

res = None 을 알지 못했을 때, if문으로 출력하려고 잡았던 코드.

if문이 잘 돌아가기는 하는데 마지막 줄 5 / 0 = None 이 출력되는 것이 아쉽다.

마지막 줄이 안나오게 수정할 방법이 없는건가?

'파이썬이 제일 쉽다면서요' 카테고리의 다른 글

python #함수(3)  (0) 2021.06.04
python #함수(2) 예제.약수구하기  (0) 2021.06.04
python #함수  (0) 2021.06.04
python #dictionary  (0) 2021.06.03
python # set  (0) 2021.06.03

+ Recent posts