case2. 특정 조건 확인
학생이 작성한 코드파일을 불러온 후, 특정 조건이 성립하는지를 기준으로 채점을 진행할 수 있습니다.
아래 예시는 print()
함수를 3번 사용하여 삼행시를 짓는 실습에 대한 정답 채점 코드입니다.
학생이 작성한 파일(main.py)을 불러온 후, print()
함수가 총 3번 작성되었는지를 기준으로 실습을채점합니다.
import os
import subprocess
import sys
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)