728x90
반응형
(문제)
random 모듈을 사용하여 1부터 100미만의 난수를 2개 생성하고,
사칙 연산이 랜덤으로 실행되도록 하고,
‘종료’를 입력하면 프로그램은 종료되고,
프로그램 종료 전 문제를 맞힌 개수를 출력하는 프로그램의 코드를 작성
(방법)
import random
ok_cnt = 0 # 맞은 수
game_cnt = 0 # 전체 게임수
while(True):
v1 = random.randint(1,100) # 1~100 난수 발생
v2 = random.randint(1,100) # 1~100 난수 발생
calcu = random.randint(1, 4) # 1=+, 2=-, 3=*, 4=/ (사칙연산 구분 난수 발생)
state = '[' + str(ok_cnt) + '/' + str(game_cnt) + '] ' # 게임 총수와 맞은 수 문자열로 변환(출력에서 사용)
if calcu == 1:
rtn = input(state + str(v1) + ' + ' + str(v2) + ' = ')
if rtn == '종료': # 종료면 break로 while을 빠져나가 종료됨
break
rtn = int(rtn) # 입력된 문자열을 정수로 변환
if rtn == (v1+v2): # 계산이 맞는지 확인
print('계산이 맞았습니다!!')
ok_cnt += 1 # 맞은 갯수 +1
else:
print('틀력습니다. 정답은 ' + str(v1+v2) + ' 입니다')
elif calcu == 2:
rtn = input(state + str(v1) + ' - ' + str(v2) + ' = ')
if rtn == '종료':
break
rtn = int(rtn)
if rtn == (v1-v2):
print('계산이 맞았습니다!!')
ok_cnt += 1
else:
print('틀력습니다. 정답은 ' + str(v1-v2) + ' 입니다')
elif calcu == 3:
rtn = input(state + str(v1) + ' * ' + str(v2) + ' = ')
if rtn == '종료':
break
rtn = int(rtn)
if rtn == (v1*v2):
print('계산이 맞았습니다!!')
ok_cnt += 1
else:
print('틀력습니다. 정답은 ' + str(v1*v2) + ' 입니다')
elif calcu == 4:
tmp = v2 # 항상 큰수를 작은 수가 나누도록 함
if v2 > v1:
v2 = v1
v1 = v2
rtn = float(input(state + str(v1) + ' / ' + str(v2) + ' = '))
if rtn == '종료':
break
rtn = int(rtn)
if rtn == (v1/v2):
print('계산이 맞았습니다!!')
ok_cnt += 1
else:
print('틀력습니다. 정답은 ' + str(v1/v2) + ' 입니다')
game_cnt += 1 # 전체 게임수 +1
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 주사위 3번 굴려 1이면 제외, 6이면 두배 계산 (0) | 2022.11.25 |
---|---|
[파이썬] 문제 : 사용자 ID 및 PW 처리 (0) | 2022.11.25 |
[파이썬] 문제 : 123.456789를 정수, 실수형으로 한 줄에 출력 (0) | 2022.11.25 |
[파이썬] 문제 : sns kdeplot로 iris plot 그리기 (0) | 2022.11.25 |
[파이썬] 문제 : 1~100 사이의 난수 2개 생성하고 사칙연산 (0) | 2022.11.24 |
댓글