본문 바로가기
프로그램

[파이썬] 문제 : 사칙연산, 쿼즈 문제

by 오디세이99 2022. 12. 19.
728x90
반응형
import random

# quiz의 질문과 답을 리스트로 저장
quiz = [
        ['오리는','103m']
        ,['세계 정상급 쇼트트랙','500/45 m/s']
       ]

def question(q, quiz_idx):         # quiz 함수. 인수는 quiz 리스트와 문제 인덱스
    print(q[quiz_idx][0])          # 문제 출력. 해당 문제 인덱스의 0번은 문제, 1번은 답
    answer = input('답 입력 : ')   # 답 입력 받음
    if q[quiz_idx][1] == answer:   # 답과 입력받은 답이 맞은면 
        print('정답입니다.')
    else:
        print('정답은',q[quiz_idx][1])  # 정답 출력

while True:                        # 사칙연산,쿼즈 문한 반복. 하당 코드의 break로 종료
    print('='*30)                   # '='를 30개 출력
    print('1. 사칙연산 계산기')
    print('2. 물리학 퀴즈')
    calc_num = input('사용할 프로그램 번호를 입력하세요(Q:종료): ')

    if calc_num.upper() == 'Q':   # Q,q 를 입력하면 종료
        break
    
    calc_num = int(calc_num)      # 문자열을 정수로 변환. 꼭 정수로 변환할 필요는 없음.
    if calc_num == 1:
        num1 = int(input('정수1:'))
        num2 = int(input('정수2:'))    
        op = input('연산자 : ')
        if op == '+':
            print(num1,'+',num2,'=',num1+num2)
        elif op == '-':
            print(num1,'-',num2,'=',num1-num2)
        elif op == '*':
            print(num1,'*',num2,'=',num1*num2)
        elif op == '/':
            print(num1,'/',num2,'=',num1/num2)
        else:
            print('잘 못')
    elif calc_num == 2:
        q_idx = random.randint(0, len(quiz)-1)   # quiz의 문제번호를 임의로 선택
        question(quiz, q_idx)                    # quiz 함수 실행. 인수로 quiz 리스트와 문제 인덱스 번호를 사용

728x90
반응형

댓글