import ipywidgets as widgets
import sys
from IPython.display import display
from IPython.display import clear_output
out = widgets.Output()
def create_multipleChoice_widget(description, options, correct_answer):
if correct_answer not in options:
options.append(correct_answer)
correct_answer_index = options.index(correct_answer)
radio_options = [(words, i) for i, words in enumerate(options)]
alternativ = widgets.RadioButtons(
options = radio_options,
description = '',
disabled = False
)
description_out = widgets.Output()
with description_out:
print(description)
feedback_out = widgets.Output()
def check_selection(b):
a = int(alternativ.value)
if a==correct_answer_index:
s = '\x1b[6;30;42m' + "回答正确." + '\x1b[0m' +"\n" #green color
else:
s = '\x1b[5;30;41m' + "回答错误. " + '\x1b[0m' +"\n" #red color
with feedback_out:
clear_output()
print(s)
return
check = widgets.Button(description="提交")
check.on_click(check_selection)
return widgets.VBox([description_out, alternativ, check, feedback_out])
def question1():
return create_multipleChoice_widget(
"在观察了这三个表达的图像后,你认为假设函数 ℎ 在线性回归模型中是什么样的呢?",
["𝑦=𝑏𝑥+𝑐", "𝑦=𝑏𝑥", "𝑦=𝑎𝑥^2+𝑏𝑥+𝑐", ],
"𝑦=𝑏𝑥+𝑐")
def question2():
return create_multipleChoice_widget(
"",
["0, 0", "0, 1", "1, 0", "1, 1"],
"1, 0")