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)

Last updated