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 |