728x90
반응형
import random
op_idx = random.randint(0,3) # 0=덧셐, 1=뺄셈, 2=곱셐, 3=나눗셐
op_lst = ['+','-','x','/'] # 화면에 연산부호 표시흫 위한 리스트. op_idx로 가리칠 수 있음
op_str = op_lst[op_idx] # 화면에 보이는 연산부호
a = random.randint(1,99) # 1~99까지 임의의 수 생성
b = random.randint(1,99) # 1~99까지 임의의 수 생성
answer = input(f"{a} {op_str} {b} = ")
if op_idx == 0: # 덧셈
result = (a + b)
elif op_idx == 1: # 빼셈
result = (a - b)
elif op_idx == 2: # 곱셈
result = (a * b)
elif op_idx == 3: # 나눗셈
result = (a / b)
if op_idx == 3: # 나눗셈은 답이 실수 즉 소수점 아래값이 나오므로 실수로 변환
answer = float(answer)
else: # 나눗셈 외에는 답이 정수가 되기때문에 정수 변환
answer = int(answer)
if answer == result: #답의 정답 여부에 따른 출력
print('정답입니다.')
else:
print(f"틀렸습니다. 정답은 {result} 입니다.")
또 다른 방법. 사칙연산 함수를 리스트의 요소로 등록해 사용할 수 있음.
import random
def add(a, b): # 각각의 사칙연산 함수
return a + b
def sub(a, b):
return a - b
def mul(a, b):
return a * b
def div(a, b):
return a/b
op_func = [add, sub, mul, div] # 사칙연산의 함수를 리스트의 요소로 대입
op_idx = random.randint(0,3) # 0=덧셐, 1=뺄셈, 2=곱셐, 3=나눗셐
op_lst = ['+','-','x','/'] # 화면에 연산부호 표시흫 위한 리스트. op_idx로 가리칠 수 있음
op_str = op_lst[op_idx] # 화면에 보이는 연산부호
a = random.randint(1,99) # 1~99까지 임의의 수 생성
b = random.randint(1,99) # 1~99까지 임의의 수 생성
answer = input(f"{a} {op_str} {b} = ") # 정답 입력 받기
result = op_func[op_idx](a, b) # 사칙연산 함수가 요소로 있는 리스트를 인덱스로 실행하면서 인수로 주면 함수 실행 됨
if op_idx == 3: # 나눗셈은 답이 실수 즉 소수점 아래값이 나오므로 실수로 변환
answer = float(answer)
else: # 나눗셈 외에는 답이 정수가 되기때문에 정수 변환
answer = int(answer)
if answer == result: #답의 정답 여부에 따른 출력
print('정답입니다.')
else:
print(f"틀렸습니다. 정답은 {result} 입니다.")
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 점수로 학점으로 변환해 출력 (0) | 2023.11.17 |
---|---|
[파이썬] 문제 : 카페 메뉴 입력 받기 (0) | 2023.11.16 |
[파이썬] 문제 : 사진 보고 과일명 맞추기 (0) | 2023.11.07 |
[파이썬] 문제 : 상품 가격,할인율 등 입력 받아 할인율 계산 출력 (0) | 2023.11.07 |
[파이썬] 문제 : 입력 받은 문자열을 분리해서 데이터 만들기 (0) | 2023.11.05 |
댓글