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)