320x100
과제가 주어졌다.
덧셈부터 종료까지 8가지의 조건이 주어지고,
이것을 계산하는 수식을 만드는 것이다.
import operator
# 계산자
ops = {
1: ('+', operator.add),
2: ('-', operator.sub),
3: ('*', operator.mul),
4: ('/', operator.truediv),
5: ('%', operator.mod),
6: ('//', operator.floordiv),
7: ('**', operator.pow),
}
while True:
try:
took = int(input('1.덧셈, 2.뺄셈, 3.곱셈, 4.나눗셈, 5.나머지, 6.몫, 7.제곱승, 8.종료: '))
except ValueError:
print('숫자 1~8중에서 입력 해 주세요.')
continue
if took == 8:
print("Bye~")
break
if took not in ops:
print('잘못된 선택 입니다. 다시 시도 하세요.')
continue
# num1, num2 인수 받기 시작 루프
while True:
try:
num1 = float(input('첫 번째 숫자 입력: '))
break
except ValueError:
print('실수를 입력해 주세요.')
continue
while True:
try:
num2 = float(input('두 번째 숫자 입력: '))
break
except ValueError:
print('실수를 입력해 주세요.')
continue
# 일종의 for문의 list[0] 이런 개념이라고 보면 될것같다.
# symbol이 '+'의 개념이고
# func가 뒤에나오는 operator.add 개념이다.
symbol, func = ops[took]
try:
result = func(num1, num2)
print(f'{num1} {symbol} {num2} = {result:.1f}')
except ZeroDivisionError:
print('0으로 나눌 수 없습니다.')
나도 처음엔 많이 헷갈렸던 부분이지만, for문의 list 개념이라 함은, 사실
symbol, func로 쓸필요 없다.
극단적으로 나는 a,b라고 사용한다.
첫번째가 list[0] 이고
두번째가 list[1] 인것이다.
300x250
'개발일지 > 임시카테고리' 카테고리의 다른 글
플러터 - const 사용해야하는 이유 - 메모리 관리 (0) | 2025.04.12 |
---|---|
플러터 - import 해오는 pubspec.yaml의 name 설정 (0) | 2025.03.28 |
플러터 정리본 - HEX코드, 16진수 표현, option (0) | 2025.03.28 |
플러터(flutter) - 가로, 세로 (Row, Column) (1) | 2025.03.28 |
dart - functional program (펑셔널 프로그램) (0) | 2025.03.24 |