case2. 특정 조건 확인

학생이 작성한 코드파일을 불러온 후, 특정 조건이 성립하는지를 기준으로 채점을 진행할 수 있습니다. 아래 예시는 print() 함수를 3번 사용하여 삼행시를 짓는 실습에 대한 정답 채점 코드입니다.

학생이 작성한 파일(main.py)을 불러온 후, print() 함수가 총 3번 작성되었는지를 기준으로 실습을채점합니다.

import os
import subprocess
import sys
from testcases import *
sys.path.append(os.getcwd())
from grader_elice_utils import EliceUtils  # isort:skip

elice_utils = EliceUtils()
elice_utils.secure_init()

try:
    total_score = 0
    
    # print() 함수를 3번 이상 사용했는지 확인하는 코드
    count = 0
    with open("main.py") as ans:
        datafile = ans.readlines()
    for line in datafile:
        if 'print' in line:
            count += 1
    
    if count >= 3:
        total_score += 100
        elice_utils.secure_send_grader('✅ 정답이에요! print()를 사용하여 멋진 삼행시를 지었군요! \n')
    else:
        elice_utils.secure_send_grader('❌ 오답이에요! print()를 3번 사용해서 삼행시를 만들어 보세요.\n')
    
    # 실습 최종 점수 전송
    total_score = int(total_score)
    elice_utils.secure_send_score(total_score)
    
except Exception as err:
    elice_utils.secure_send_grader('채점 도중 오류가 발생했어요. 코드가 정상적으로 실행되는지 확인해보세요.\n')
    elice_utils.secure_send_score(0)
    sys.exit(1)

Last updated