{"id":187904,"student_id":10,"content":"{\"html\":\"\u003c!DOCTYPE html\u003e\\n\u003chtml lang=\\\"en\\\"\u003e\\n\\n\u003chead\u003e\\n \u003cmeta charset=\\\"UTF-8\\\"\u003e\\n \u003cmeta name=\\\"robots\\\" content=\\\"noindex, nofollow\\\"\u003e\\n \u003cmeta name=\\\"googlebot\\\" content=\\\"noindex, nofollow\\\"\u003e\\n \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"\u003e\\n \u003ctitle\u003eDocument\u003c/title\u003e\\n \u003clink rel=\\\"stylesheet\\\" href=\\\"https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css\\\"\u003e\\n \u003c!-- \u003clink rel=\\\"stylesheet\\\" href=\\\"./index.css\\\"\u003e --\u003e\\n \u003cscript src=\\\"https://cdn.jsdelivr.net/npm/vue\\\"\u003e\u003c/script\u003e\\n\u003c/head\u003e\\n\\n\u003cbody\u003e\\n \u003cdiv id=\\\"app\\\"\u003e\\n \u003cdiv class=\\\"container py-5\\\" v-if=\\\"isShowMenu\\\"\u003e\\n\\n \u003cdiv class=\\\"mt-5\\\"\u003e\\n \u003ch1 class=\\\"my-5 text-center\\\"\u003e基本練習\u003c/h1\u003e\\n \u003cdiv class=\\\"row justify-content-center\\\"\u003e\\n \u003cdiv class=\\\"col-3 mb-4\\\" v-for=\\\"e in exams\\\" v-if=\\\"e.type == EXAM_TYPE_BASIC\\\"\u003e\\n \u003cdiv class=\\\"text-center shadow bg-white p-4 rounded border border-inf\\\"\u003e\\n \u003ch3 class=\\\"mb-4\\\"\u003e{{e.title}}\u003c/h3\u003e\\n \u003cp\u003e{{e.description}}\u003c/p\u003e\\n \u003cp\u003e\\n 總共 {{e.length}} 題\\n \u003cbr/\u003e\\n 作答時間 {{getExamTimeSec(e) / 60}} 分鐘\\n \u003cbr/\u003e\\n 歷史得分:{{isExistScoreOf(e.id) ? localStorage.getItem('exam_' + e.id) + '/ 100' : '尚未考試'}}\\n \u003c/p\u003e\\n \u003cbutton href=\\\"#\\\" class=\\\"btn btn-block btn-danger\\\" @click=\\\"showExam(e.id)\\\"\u003e開始測驗\u003c/button\u003e\\n \u003cbutton href=\\\"#\\\" class=\\\"btn btn-block\\\" :class=\\\"isExistScoreOf(e.id) ? 'btn-warning' : 'btn-secondary'\\\" @click=\\\"showReview(e.id)\\\" :disabled=\\\"!isExistScoreOf(e.id)\\\"\u003e看解答\u003c/button\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n\\n \u003cdiv class=\\\"mt-5\\\"\u003e\\n \u003ch1 class=\\\"my-5 text-center\\\"\u003e模擬測驗\u003c/h1\u003e\\n \u003cdiv class=\\\"row justify-content-center\\\"\u003e\\n \u003cdiv class=\\\"col-4\\\" v-for=\\\"e in exams\\\" v-if=\\\"e.type == EXAM_TYPE_MOCK\\\"\u003e\\n \u003cdiv class=\\\"text-center shadow bg-white p-5 rounded border border-inf\\\"\u003e\\n \u003ch3 class=\\\"mb-4\\\"\u003e{{e.title}}\u003c/h3\u003e\\n \u003cp\u003e{{e.description}}\u003c/p\u003e\\n \u003cp\u003e總共 {{e.length}} 題,作答時間 {{getExamTimeSec(e) / 60}} 分鐘\u003c/p\u003e\\n \u003cp v-if=\\\"isExistScoreOf(e.id)\\\"\u003e\\n 歷史得分:{{localStorage.getItem('exam_' + e.id)}} / 100\\n \u003c/p\u003e\\n \u003cp v-else\u003e\\n 歷史得分:尚未考試\\n \u003c/p\u003e\\n \u003cbutton href=\\\"#\\\" class=\\\"btn btn-lg btn-block btn-danger\\\" @click=\\\"showExam(e.id)\\\"\u003e開始測驗\u003c/button\u003e\\n \u003cbutton href=\\\"#\\\" class=\\\"btn btn-block\\\" :class=\\\"isExistScoreOf(e.id) ? 'btn-warning' : 'btn-secondary'\\\" @click=\\\"showReview(e.id)\\\" :disabled=\\\"!isExistScoreOf(e.id)\\\"\u003e看解答\u003c/button\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n\\n \u003cdiv class=\\\"mt-5\\\"\u003e\\n \u003ch1 class=\\\"my-5 text-center\\\"\u003eGmetrix\u003c/h1\u003e\\n \u003cdiv class=\\\"row justify-content-center\\\"\u003e\\n \u003cdiv class=\\\"col-4\\\" v-for=\\\"e in exams\\\" v-if=\\\"e.type == EXAM_TYPE_MOCK\\\"\u003e\\n \u003cdiv class=\\\"text-center shadow bg-white p-5 rounded border border-inf\\\"\u003e\\n \u003ch3 class=\\\"mb-4\\\"\u003e{{e.title}}\u003c/h3\u003e\\n \u003cp\u003e{{e.description}}\u003c/p\u003e\\n \u003cp\u003e總共 {{e.length}} 題,作答時間 {{getExamTimeSec(e) / 60}} 分鐘\u003c/p\u003e\\n \u003cp v-if=\\\"isExistScoreOf(e.id)\\\"\u003e\\n 歷史得分:{{localStorage.getItem('exam_' + e.id)}} / 100\\n \u003c/p\u003e\\n \u003cp v-else\u003e\\n 歷史得分:尚未考試\\n \u003c/p\u003e\\n \u003cbutton href=\\\"#\\\" class=\\\"btn btn-lg btn-block btn-danger\\\" @click=\\\"showExam(e.id)\\\"\u003e開始測驗\u003c/button\u003e\\n \u003cbutton href=\\\"#\\\" class=\\\"btn btn-block\\\" :class=\\\"isExistScoreOf(e.id) ? 'btn-warning' : 'btn-secondary'\\\" @click=\\\"showReview(e.id)\\\" :disabled=\\\"!isExistScoreOf(e.id)\\\"\u003e看解答\u003c/button\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n\\n \u003cdiv v-if=\\\"isShowResult\\\" class=\\\"cover\\\"\u003e\\n \u003cdiv class=\\\"container p-5\\\"\u003e\\n \u003cdiv class=\\\"alert alert-info\\\"\u003e\\n \u003ch3\u003e結果\u003c/h3\u003e\\n \u003cp\u003e總共 {{exam.length}} 題\u003c/p\u003e\\n \u003cp\u003e答對 {{countCorrectAnswer()}} 題\u003c/p\u003e\\n \u003cp\u003e得分 {{countCorrectAnswer() * 2.5}} / 100\u003c/p\u003e\\n \u003c/div\u003e\\n \u003ctable class=\\\"table\\\"\u003e\\n \u003ctr\u003e\\n \u003cth scope=\\\"col\\\"\u003e題號\u003c/th\u003e\\n \u003cth scope=\\\"col\\\"\u003e類型\u003c/th\u003e\\n \u003cth scope=\\\"col\\\"\u003e是否答對\u003c/th\u003e\\n \u003c/tr\u003e\\n \u003ctr v-for=\\\"e, index in exam\\\" :class=\\\"isCorrect(index) ? 'table-success' : 'table-danger'\\\"\u003e\\n \u003ctd\u003e{{index + 1}}\u003c/td\u003e\\n \u003ctd\u003e{{typeToText(e.type)}}\u003c/td\u003e\\n \u003ctd\u003e{{isCorrect(index) ? '答對' : '答錯'}}\u003c/td\u003e\\n \u003c/tr\u003e\\n \u003c/table\u003e\\n \u003cbutton class=\\\"btn btn-lg btn-block btn-danger\\\" @click=\\\"isShowResult = false\\\"\u003e訂正錯誤\u003c/button\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n\\n \u003cdiv v-if=\\\"!isShowMenu\\\"\u003e\\n \u003cdiv id=\\\"navbar\\\" class=\\\"d-flex justify-content-end align-items-center\\\"\u003e\\n \\n \u003cdiv class=\\\"d-inline-block mr-auto\\\"\u003e\\n \u003cspan class=\\\"h2\\\"\u003e試題{{current + 1}} (共{{exam.length}}題)\u003c/span\u003e\\n \u003cspan\u003e剩餘時間 {{countdown}}\u003c/span\u003e\\n \u003c/div\u003e\\n \u003cbutton class=\\\"ml-3 btn btn-lg btn-dark\\\" @click=\\\"toggleFullscreen\\\"\u003e進入/取消全螢幕\u003c/button\u003e\\n \u003cbutton class=\\\"ml-3 btn btn-lg btn-info\\\" @click=\\\"showMenu\\\"\u003e返回選單\u003c/button\u003e\\n \u003c/div\u003e\\n \u003cdiv class=\\\"content\\\"\u003e\\n \u003cdiv class=\\\"p-4 content-description\\\"\u003e\\n \u003cpre v-if=\\\"exam[current]\\\"\u003e{{exam[current].description}}\u003c/pre\u003e\\n \u003c/div\u003e\\n \u003cdiv class=\\\"content-editors p-4\\\"\u003e\\n \u003cks-options-exam\\n v-if=\\\"exam[current] \u0026\u0026 exam[current].type === OPTIONS\\\"\\n :exam=\\\"exam[current]\\\"\\n :answer=\\\"answers[current]\\\"\\n :show_answer=\\\"showAnswer\\\"\\n :can_edit=\\\"canEdit\\\"\\n \u003e\u003c/ks-options-exam\u003e\\n \u003cks-true-or-false-exam\\n v-if=\\\"exam[current] \u0026\u0026 exam[current].type === TRUE_OR_FALSE\\\"\\n :exam=\\\"exam[current]\\\"\\n :answer=\\\"answers[current]\\\"\\n :show_answer=\\\"showAnswer\\\"\\n :can_edit=\\\"canEdit\\\"\\n \u003e\u003c/ks-true-or-false-exam\u003e\\n \u003cks-select-exam\\n v-if=\\\"exam[current] \u0026\u0026 exam[current].type === SELECT\\\"\\n :exam=\\\"exam[current]\\\"\\n :answer=\\\"answers[current]\\\"\\n :show_answer=\\\"showAnswer\\\"\\n :can_edit=\\\"canEdit\\\"\\n \u003e\u003c/ks-select-exam\u003e\\n \u003cks-drag-and-drop-exam\\n v-if=\\\"exam[current] \u0026\u0026 exam[current].type === DRAG_AND_DROP\\\"\\n :exam=\\\"exam[current]\\\"\\n :answer=\\\"answers[current]\\\"\\n :show_answer=\\\"showAnswer\\\"\\n :can_edit=\\\"canEdit\\\"\\n @update_answer=\\\"updateAnswer\\\"\\n \u003e\u003c/ks-drag-and-drop-exam\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n \u003cdiv class=\\\"footer d-flex justify-content-end align-items-center\\\"\u003e\\n \u003cbutton class=\\\"ml-3 btn btn-lg btn-dark\\\" @click=\\\"prev\\\" :disabled=\\\"isFirst\\\"\u003e上一題\u003c/button\u003e\\n \u003cbutton class=\\\"ml-3 btn btn-lg btn-dark\\\" @click=\\\"next\\\" :disabled=\\\"isLast\\\"\u003e下一題\u003c/button\u003e\\n \u003cbutton class=\\\"ml-3 btn btn-lg btn-danger\\\" @click=\\\"finish\\\" :disabled=\\\"!isLast\\\"\u003e交卷\u003c/button\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n\u003c!-- \\n \u003cscript src=\\\"../constants.js\\\"\u003e\u003c/script\u003e\\n\\n \u003cscript src=\\\"../data/basic_01.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"../data/basic_02.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"../data/basic_03.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"../data/basic_04.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"../data/basic_05.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"../data/basic_06.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"../data/basic_07.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"../data/basic_08.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"../data/basic_09.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"../data/basic_10.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"../data/basic_11.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"../data/basic_12.js\\\"\u003e\u003c/script\u003e\\n \\n \u003cscript src=\\\"../data/mock_1.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"../data/mock_2.js\\\"\u003e\u003c/script\u003e\\n\\n \u003cscript src=\\\"./components.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"exam_parse.js\\\"\u003e\u003c/script\u003e\\n \u003cscript src=\\\"./index.js\\\"\u003e\u003c/script\u003e --\u003e\\n\u003c/body\u003e\\n\\n\u003c/html\u003e\",\"css\":\":root {\\n --navbar-height: 50px;\\n font-family: monospace;\\n}\\n\\n*:disabled {\\n cursor: not-allowed;\\n}\\n\\nbody {\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\\n color: #555;\\n background-color: #eeeeee;\\n}\\n\\n#app {\\n position: absolute;\\n top: 5px;\\n left: 5px;\\n right: 5px;\\n bottom: 5px;\\n background-color: #eeeeee;\\n}\\n\\n#navbar {\\n position: absolute;\\n top: 0;\\n width: 100%;\\n height: var(--navbar-height);\\n}\\n\\n#app .content {\\n position: absolute;\\n top: var(--navbar-height);\\n width: 100%;\\n height: calc(100vh - 10px - var(--navbar-height)*2);\\n box-sizing: border-box;\\n border: 2px solid #ccc;\\n background-color: #ffffff;\\n}\\n\\n#app .footer {\\n position: absolute;\\n bottom: 0;\\n height: var(--navbar-height);\\n width: 100%; \\n}\\n\\n.content .content-description {\\n border: 1px solid #ccc;\\n height: 40%;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n overflow-y: scroll;\\n}\\n\\n.content .content-editors {\\n border: 1px solid #ccc;\\n height: 60%;\\n width: 100%;\\n position: absolute;\\n bottom: 0;\\n overflow-y: scroll;\\n}\\n\\n.drag_and_drop_select {\\n display: inline-block;\\n position: relative;\\n min-width: 100px;\\n \\n}\\n\\n.drag_and_drop_select \u003e span {\\n \\n}\\n\\n.drag_and_drop_select \u003e select {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: 1;\\n width: 15px;\\n height: 20px;\\n transform: translateY(-10px);\\n}\\n\\n.cover {\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: 0;\\n bottom: 0;\\n z-index: 100;\\n overflow: scroll;\\n background-color: white;\\n}\\n\\n.grab {cursor: -webkit-grab; cursor: grab;}\",\"js\":\"var OPTIONS = 'options' //選擇題\\nvar SELECT = 'select' //下拉選單題\\nvar TRUE_OR_FALSE = 'tureOrFalse' //是非題\\nvar DRAG_AND_DROP = 'dragAndDrop' //配對題\\n\\nvar OPTION_SPLITER = '\u003c%==========%\u003e'\\nvar CONTENT_SELECTER = 'CONTENT_SELECTER'\\n\\nvar TYPES = { OPTIONS, SELECT, TRUE_OR_FALSE, DRAG_AND_DROP }\\n\\nvar MODE_TEST = 'modeTest'\\nvar MODE_SHOW_RESULT = 'modeShowResult'\\nvar MODE_SHOW_ALL = 'modeShowAll'\\nvar A_TO_Z = 'ABCDEFGHIJKLMNOPQRSTUVWZYZ'\\n\\nvar MODE_INIT = 0\\nvar MODE_EXAM = 1\\nvar MODE_RESULT = 2\\nvar MODE_REVIEW = 3\\n\\nvar EXAM_TYPE_BASIC = 'basic'\\nvar EXAM_TYPE_MOCK = 'mock'\\n\\nlet q;\\n\\nvar BASIC_01 = []\\n\\nBASIC_01.title = '第一週_課堂測驗'\\nBASIC_01.description = '變數、型態、輸入輸出'\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問執行以下程式後,最後一行 a, b 分別會印出什麼?\\n\\na = 10\\nb = 20\\na = a + b\\nb = a + b\\n\\nprint(a, b)\\n`\\nq.options = `\\n30 30\\n${OPTION_SPLITER}\\n30 50\\n${OPTION_SPLITER}\\n50 50\\n${OPTION_SPLITER}\\n10 20\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_01.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問執行以下程式後,最後一行 a, b 分別會印出什麼?\\n\\na = 10\\nb = 20\\na += b\\nb += a\\n\\nprint(a, b)\\n`\\nq.options = `\\n30 30\\n${OPTION_SPLITER}\\n30 50\\n${OPTION_SPLITER}\\n50 50\\n${OPTION_SPLITER}\\n10 20\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_01.push(q)\\n\\n\\n// 3\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = ((10 + 20) * (30 - 40)) / 50\\nprint(a)\\n\\n請問執行以下運算後,程式最後印出 a 結果會是?\\n`\\nq.options = `\\nA: 6\\n${OPTION_SPLITER}\\nB: 6.0\\n${OPTION_SPLITER}\\nC: -6\\n${OPTION_SPLITER}\\nD: -6.0\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_01.push(q)\\n\\n// 4\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問執行以下程式後將結果 a, b, c 印出來分別是?\\n\\na = 10 / 3\\nb = 10 % 3\\nc = 10 // 3\\n\\nprint(a, b, c)\\n`\\nq.options = `\\nA: 3.3333333333333335, 1, 3\\n${OPTION_SPLITER}\\nB: 3, 1, 3.3333333333333335\\n${OPTION_SPLITER}\\nC: 3, 3.3333333333333335, 1\\n${OPTION_SPLITER}\\nD: 3.3333333333333335, 1, 3.0\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_01.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n執行以下程式輸入分別輸入 30, 40 請問會印出什麼?\\n\\na = input('加數:')\\nb = input('被加數:')\\n\\nsum = a + b #計算總和\\nprint(sum)\\n`\\nq.options = `\\nA: 30\\n${OPTION_SPLITER}\\nB: 40\\n${OPTION_SPLITER}\\nC: 1200\\n${OPTION_SPLITER}\\nD: 3040\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_01.push(q)\\n\\n// 6\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = input(\\\"矩形長?\\\")\\nb = input(\\\"矩形高?\\\")\\n\\nprint(\\\"面積是:\\\" + area)\\n\\n小明遇到了「困難」,他希望寫一隻程式能讓使用者輸入矩形長和高兩個數值,並計算出面積並印出。請你完成第 3 行並幫助小明完成這隻程式?\\n`\\nq.options = `\\nA: str(int(a) * int(b))\\n${OPTION_SPLITER}\\nB: int(a) * int(b)\\n${OPTION_SPLITER}\\nC: str(a * b)\\n${OPTION_SPLITER}\\nD: int(a * b)\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_01.push(q)\\n\\n\\n// 7\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問執行以下程式會印出?\\n\\ns = '你好我是{2},我今年{1}歲,我是{0}座'\\nprint(s.format('小智', 10, '天蠍'))\\n`\\nq.options = `\\nA: 你好我是小智,我今年10歲,我是天蠍座\\n${OPTION_SPLITER}\\nB: 你好我是天蠍,我今年10歲,我是小智座\\n${OPTION_SPLITER}\\nC: 你好我是小智,我今年天蠍歲,我是10座\\n${OPTION_SPLITER}\\nD: 程式語法錯誤\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_01.push(q)\\n\\n// 8\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\ntype(+1E10)\\ntype(5.0)\\ntype(\\\"True\\\")\\ntype(False)\\n\\n請問以下何者正確?\\n\\n`\\nq.options = `\\nA: int, int, bool, bool\\n${OPTION_SPLITER}\\nB: float, float, str, bool\\n${OPTION_SPLITER}\\nC: int, float, str, bool\\n${OPTION_SPLITER}\\nD: float, int, str, str\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_01.push(q)\\n\\n// 9\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問以下何者會造成程式出錯?\\n`\\nq.options = `\\nA: '10' + '10'\\n${OPTION_SPLITER}\\nB: '10' - '10'\\n${OPTION_SPLITER}\\nC: '10' * 5\\n${OPTION_SPLITER}\\nD: '10' / 4\\n${OPTION_SPLITER}\\nE: 10 * 0\\n${OPTION_SPLITER}\\nF: 10 / 0\\n`\\nq.content = ``\\nq.answer = [1, 3, 5]\\nBASIC_01.push(q)\\n\\n\\n// 10\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nre = 'Q' + 'm' * 5 + 'm' * 3\\nprint(re)\\n`\\nq.options = `\\nA: Qmmmmmmmm\\n${OPTION_SPLITER}\\nB: QmQmQmQmQmmmm\\n${OPTION_SPLITER}\\nC: QmQmQmQmQmmQmQmQmQmQmmQmQmQmQmQmm\\n${OPTION_SPLITER}\\nD: 程式出錯\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_01.push(q)\\nvar BASIC_02 = []\\n\\nBASIC_02.title = '第一週_課後測驗'\\nBASIC_02.description = '變數、型態、輸入輸出'\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問分別會印出什麼型態?\\n\\na = 10\\nb = \\\"10\\\"\\n\\nprint(type(a + a))\\nprint(type(b + b))\\nprint(type(a / a))\\nprint(type(a * b))\\n`\\nq.options = `\\nA: int, str, int, str\\n${OPTION_SPLITER}\\nB: int, str, float, str\\n${OPTION_SPLITER}\\nC: int, str, float, float\\n${OPTION_SPLITER}\\nD: int, int, float, str\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_02.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問執行以下程式最後變數 a 會印出什麼?\\na = 1\\na += 2\\na *= 3\\na -= 4\\na /= 5\\n\\nprint(a)\\n`\\nq.options = `\\nA: 1.0\\n${OPTION_SPLITER}\\nB: 2.0\\n${OPTION_SPLITER}\\nC: 3.0\\n${OPTION_SPLITER}\\nD: 4.0\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_02.push(q)\\n\\n\\n// 3\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n執行以下程式,並分別輸入三個成績 70, 80, 90 請問會印出什麼?\\nch = input('國文')\\nen = input('英文')\\nma = input('數學')\\n\\navg = ch + en + ma / 3\\n\\nprint(avg)\\n`\\nq.options = `\\nA: 180\\n${OPTION_SPLITER}\\nB: 80\\n${OPTION_SPLITER}\\nC: 250\\n${OPTION_SPLITER}\\nD: 程式錯誤\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_02.push(q)\\n\\n// 4\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n這是一個簡單計算 BMI 數值的程式,假設使用者分別輸入\\n40 和 2 請問算出來得數值是多少?\\n\\nw = input('體重KG')\\nh = input('身高M')\\n\\nbmi = w / h * h\\n\\nprint('BMI 值:' + str(bmi))\\n\\n`\\nq.options = `\\nA: 40.0\\n${OPTION_SPLITER}\\nB: 40\\n${OPTION_SPLITER}\\nC: 10.0\\n${OPTION_SPLITER}\\nD: 10\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_02.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n如果使用者輸入 123456789 程式會印出什麼?\\n\\npwd = input('請輸入金庫密碼')\\n\\nif pwd == 123456789:\\n print('密碼正確')\\nelse:\\n print('密碼錯誤')\\n`\\nq.options = `\\nA: 密碼正確\\n${OPTION_SPLITER}\\nB: 密碼錯誤\\n${OPTION_SPLITER}\\nC: 什麼都不會印\\n${OPTION_SPLITER}\\nD: 程式會出錯無法執行\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_02.push(q)\\nvar BASIC_03 = []\\n\\nBASIC_03.title = '第二週_課前測驗'\\nBASIC_03.description = '變數、型態、輸入輸出'\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = (3 * ( 1 + 2 ) ** 2 - ( 2 ** 2) * 3 )\\nprint(a)\\n\\n執行以下程式請問變數 a 會印出什麼呢?\\n`\\nq.options = `\\nA: 3\\n${OPTION_SPLITER}\\nB: 13\\n${OPTION_SPLITER}\\nC: 15\\n${OPTION_SPLITER}\\nD: 69\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_03.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = print(\\\"加數?\\\")\\nb = print(\\\"被加數?\\\")\\n\\na += b\\nprint(a)\\n\\n輸入 10, 20 印出?\\n`\\nq.options = `\\nA: 20\\n${OPTION_SPLITER}\\nB: 30\\n${OPTION_SPLITER}\\nC: 1020\\n${OPTION_SPLITER}\\nD: 程式錯誤無法印出\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_03.push(q)\\n\\n\\n// 3\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = 5.0\\nb = 2\\n\\nprint(a / b)\\nprint(a % b)\\nprint(a // b)\\n\\n請問執行以下程式結果會是?\\n`\\nq.options = `\\nA: 2.5, 1, 2\\n${OPTION_SPLITER}\\nB: 2.5, 2, 1\\n${OPTION_SPLITER}\\nC: 2.5, 1.0, 2.0\\n${OPTION_SPLITER}\\nD: 2.5, 2.0, 1.0\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_03.push(q)\\n\\n// 4\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問使用 type 去判斷以下四個資料分別會得到什麼結果?\\n\\ntype('123')\\ntype(\\\"True\\\")\\ntype('')\\ntype(\\\"Hello\\\")\\n\\n`\\nq.options = `\\nA: int, bool, null, str\\n${OPTION_SPLITER}\\nB: int, str, str, str\\n${OPTION_SPLITER}\\nC: str, str, null, str\\n${OPTION_SPLITER}\\nD: str, str, str, str\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_03.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n這是一個必較大小的程式,如果輸入一樣大的數字,請問最後印出的結果會是什麼?\\n\\na = int(input('請輸入a:'))\\nb = int(input('請輸入b:'))\\n\\nif a \u003e b:\\n print('a 比較大啦')\\nelse:\\n print('b 比較大啦')\\n\\n`\\nq.options = `\\nA: a 比較大啦\\n${OPTION_SPLITER}\\nB: b 比較大啦\\n${OPTION_SPLITER}\\nC: a 跟 b 一樣大\\n${OPTION_SPLITER}\\nD: 什麼都不會印出來\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_03.push(q)\\nvar BASIC_04 = []\\n\\nBASIC_04.title = '第爾週\\b_課堂中測驗'\\nBASIC_04.description = '變數、型態、輸入輸出'\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n小明媽媽說考及格滿六十分才可以去看電視,請問第 2 行可以填入什麼?\\ngrade = input('分數:')\\n\\nif grade \u003e= 60:\\n print('可以去看電視')\\n\\n print('不可以')\\n\\n`\\nq.options = `\\nA: if score \u003c 60:\\n${OPTION_SPLITER}\\nB: elif score \u003c 60:\\n${OPTION_SPLITER}\\nC: else:\\n${OPTION_SPLITER}\\nD: 以上皆可\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_04.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n執行以下程式分別輸入 10, 10, 5 請問程式會印出什麼?\\n\\na = int(input('a'))\\nb = int(input('b'))\\nc = int(input('c'))\\n\\nif a \u003e b:\\n if a \u003e c:\\n print('a 最大')\\n else:\\n print('b 最大')\\nelse:\\n if b \u003e c:\\n print('b 最大')\\n else:\\n print('c 最大')\\n`\\nq.options = `\\nA: a 最大\\n${OPTION_SPLITER}\\nB: b 最大\\n${OPTION_SPLITER}\\nC: c 最大\\n${OPTION_SPLITER}\\nD: 什麼都不會印出來\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_04.push(q)\\n\\n\\n// 3\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nx = int(input('x座標'))\\ny = int(input('y座標'))\\n\\nif x \u003e 0:\\n if y \u003e 0:\\n print('第A象限')\\n else:\\n print('第B象限')\\nelse:\\n if y \u003e 0:\\n print('第C象限')\\n else:\\n print('第D象限')\\n\\n請問輸入座標 0, 0 會印出?\\n\\n`\\nq.options = `\\nA: 原點\\n${OPTION_SPLITER}\\nB: 第B象限\\n${OPTION_SPLITER}\\nC: 第C象限\\n${OPTION_SPLITER}\\nD: 第D象限\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_04.push(q)\\n\\n// 4\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問在輸入合法的三角形三個邊長情況下,何種三角形程式判斷會有錯誤的結果?\\n\\na = input('三角形第一個邊長:')\\nb = input('三角形第二個邊長:')\\nc = input('三角形第三個邊長:')\\n\\nif a == b or b == c or c == a:\\n print('等腰三角形')\\n\\nelif a == b and b == c:\\n print('正三角形')\\n\\nelse:\\n print('三邊不等長三角形')\\n\\n`\\nq.options = `\\nA: 正三角形\\n${OPTION_SPLITER}\\nB: 等腰三角形\\n${OPTION_SPLITER}\\nC: 三邊不等長三角形\\n${OPTION_SPLITER}\\nD: 無錯誤\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_04.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n以下是一個比大小的程式,如果輸入兩個一樣的數值會發生什麼事情?\\n\\na = float(input('a'))\\nb = float(input('b'))\\n\\nif a \u003e b:\\n print('a 比較大')\\n\\nelse:\\n print('b 比較大')\\n`\\nq.options = `\\nA: a 必較大\\n${OPTION_SPLITER}\\nB: b 必較大\\n${OPTION_SPLITER}\\nC: a、b 一樣大\\n${OPTION_SPLITER}\\nD: 程式語法有錯\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_04.push(q)\\n\\n// 6\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你寫了一個 Python 程式來比較數字如下\\n請問底下關於這個程式的敘述何者錯誤?\\n\\n\\na = eval(input(\\\"a:\\\"))\\nb = eval(input(\\\"b:\\\"))\\n\\nif a \u003c= b:\\n print(\\\"a 小於 b\\\")\\nif a \u003e b:\\n print(\\\"a 大於 b\\\")\\nif a = b:\\n print(\\\"a 和 b 是相等的\\\")\\n`\\nq.options = `\\nA: eval 可以用 float 取代\\n${OPTION_SPLITER}\\nB: 第 5 行只有在 a 比 b 小時才會印出\\n${OPTION_SPLITER}\\nC: 第 7 行只有在 a 比 b 大時才會印出\\n${OPTION_SPLITER}\\nD: 第 8 行程式有錯\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_04.push(q)\\n\\n\\n// 7\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n底下是一個程式可以判斷使用者輸入數字是幾位數,\\n這個程式有一行錯誤造成結果不如預期,請問是第幾行?\\n\\nnum = int(input (\\\"請翰入一個數字:\\\"))\\n\\nif num \u003e -10 and num \u003c10:\\n print(\\\"一位數\\\")\\nif num \u003e -100 and num \u003c 100:\\n print(\\\"二位數\\\")\\nelse:\\n print(\\\"二位數以上\\\")\\n\\n`\\nq.options = `\\n1\\n${OPTION_SPLITER}\\n3\\n${OPTION_SPLITER}\\n4\\n${OPTION_SPLITER}\\n7\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_04.push(q)\\n\\n// 8\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\ngrade = float(input('輸入成績:'))\\n\\nif grade \u003c 60:\\n print('E')\\nelif grade \u003c 70:\\n print('D')\\nelif grade \u003c 80:\\n print('C')\\nelif grade \u003c 90:\\n print('B')\\nelse:\\n print('A')\\n\\n\\n請問執行以下程式輸入 60 分會印出什麼等級?\\n`\\nq.options = `\\nA: E\\n${OPTION_SPLITER}\\nB: D\\n${OPTION_SPLITER}\\nC: C\\n${OPTION_SPLITER}\\nD: B\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_04.push(q)\\n\\n\\n// 9\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nchinese = int(input('國文成績'))\\nenglish = int(input('英文成績'))\\n\\nif chinese \u003e 60:\\n if english \u003e 60:\\n print('你可以出去玩!')\\n else:\\n print('不能出去玩!')\\n\\n\\n如果成績分別輸入 60, 90 會印出?\\n`\\nq.options = `\\nA: 你可以出去玩\\n${OPTION_SPLITER}\\nB: 不能出去玩\\n${OPTION_SPLITER}\\nC: 什麼都不會印\\n${OPTION_SPLITER}\\nC: 程式會報錯誤\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_04.push(q)\\n\\n// 10\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n執行以下程式最後一行 c, d, e 會印出什麼?\\n\\na = True\\nb = Frue\\nc = a or b\\nd = a and b\\ne = c or d\\n\\nprint(c, d, e)\\n\\n`\\nq.options = `\\nA: True, False, False\\n${OPTION_SPLITER}\\nB: True, true, True\\n${OPTION_SPLITER}\\nC: False, False, True\\n${OPTION_SPLITER}\\nD: True, False, True\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_04.push(q)\\nvar BASIC_05 = []\\n\\nBASIC_05.title = '第二週_課後測驗'\\nBASIC_05.description = '變數、型態、輸入輸出'\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\ngrade = float(input('輸入成績:'))\\n\\nif grade \u003c= 60:\\n print('E')\\nelif grade \u003c= 70:\\n print('D')\\nelif grade \u003c= 80:\\n print('C')\\nelif grade \u003c= 90:\\n print('B')\\nelse:\\n print('A')\\n\\n\\n請問執行以下程式輸入 90 分會印出什麼等級?\\n\\n`\\nq.options = `\\nA: A\\n${OPTION_SPLITER}\\nB: B\\n${OPTION_SPLITER}\\nC: C\\n${OPTION_SPLITER}\\nD: D\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_05.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n小明的麻麻是一位工程師,小明要將今天考的三科成績輸入進一隻麻麻寫的程式,這隻程式會告訴他今天能ㄅ能出去玩,請問麻麻寫的這隻程式規則是什麼?\\n\\nch = int(input('國文成績'))\\nen = int(input('英文成績'))\\nma = int(input('數學成績'))\\n\\nif ch \u003e= 60 and en \u003e= 60:\\n print('可以出去玩')\\nif en \u003e= 60 and ma \u003e= 60:\\n print('可以出去玩')\\nif ma \u003e= 60 and ch \u003e= 60:\\n print('可以出去玩')\\nelse:\\n print('可以出去玩')\\n\\n`\\nq.options = `\\nA: 任一科及格\\n${OPTION_SPLITER}\\nB: 任兩科及格\\n${OPTION_SPLITER}\\nC: 任兩科及格但是三科都及格反而不能出去玩\\n${OPTION_SPLITER}\\nD: 都及格\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_05.push(q)\\n\\n\\n// 3\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n\\n底下是一個判斷是否是合法三角形的程式,請問第五行應該填入什麼?\\n\\na = float(input('邊長1'))\\nb = float(input('邊長2'))\\nc = float(input('邊長3'))\\n\\n???\\n print('是三角形')\\nelse:\\n print('不是三角形啦')\\n\\n`\\nq.options = `\\nA: if a + b \u003e c or b + c \u003e a or a + c \u003e b:\\n${OPTION_SPLITER}\\nB: if a + b \u003e= c or b + c \u003e= a or a + c \u003e= b:\\n${OPTION_SPLITER}\\nC: if a + b \u003e c and b + c \u003e a and a + c \u003e b:\\n${OPTION_SPLITER}\\nD: if a + b \u003e= c and b + c \u003e= a and a + c \u003e= b:\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_05.push(q)\\n\\n// 4\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = 10\\nb = \\\"10\\\"\\n\\nresult = int(str(a + int(b)) + b) / int(b)\\n\\n請問 result 是多少?\\n\\n`\\nq.options = `\\nA: 4\\n${OPTION_SPLITER}\\nB: 201\\n${OPTION_SPLITER}\\nC: 4.0\\n${OPTION_SPLITER}\\nD: 201.0\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_05.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問執行以下程式最後 e, f 會印出什麼?\\n\\na = 10 \u003e= 10\\nb = 10 \u003e 10\\nc = a or b\\nd = a and b\\ne = b or c or d\\nf = b and c and d\\n\\nprint(e, f)\\n\\n`\\nq.options = `\\nA: True, True\\n${OPTION_SPLITER}\\nB: False, True\\n${OPTION_SPLITER}\\nC: True, False\\n${OPTION_SPLITER}\\nD: False, False\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_05.push(q)\\nvar BASIC_06 = []\\n\\nBASIC_06.title = '第三週\\b_課前測驗'\\nBASIC_06.description = '變數、型態、輸入輸出'\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = 10\\nb = 20\\nc = 30\\n\\na = b + c\\nb = b + c\\nc = b + c\\n\\nprint(a + b + c)\\n\\n請問執行以下程式會印出多少?\\n\\n`\\nq.options = `\\nA: 180\\n${OPTION_SPLITER}\\nB: 150\\n${OPTION_SPLITER}\\nC: 120\\n${OPTION_SPLITER}\\nD: 90\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_06.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = '2'\\nb = 3\\n\\nr = str(int(a * b) / b) + a\\n\\nprint(r)\\n\\n請問執行以下程式最後會印出什麼?\\n\\n`\\nq.options = `\\nA: 742\\n${OPTION_SPLITER}\\nB: 74.02\\n${OPTION_SPLITER}\\nC: 16.5\\n${OPTION_SPLITER}\\nD: 16.52\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_06.push(q)\\n\\n\\n// 3\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = 10 \u003e 10\\nb = 10 \u003e= 10\\nc = a and b\\nd = a or b\\ne = a == b\\nf = a != b\\n\\nprint(a, b, c, d, e, f)\\n\\n請問執行以下程式後,a, b, c, d, e, f 有多少個 True、False?\\n`\\nq.options = `\\nA: True: 4, False: 2\\n${OPTION_SPLITER}\\nB: True: 2, False: 4\\n${OPTION_SPLITER}\\nC: True: 5, False: 1\\n${OPTION_SPLITER}\\nD: True: 3, False: 3\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_06.push(q)\\n\\n// 4\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n\\nname = 'Tony'\\n\\nResult = \\\"{3}/{2}/{1}-{0}\\\".format(\\\"2020\\\", 11, 19.0, name)\\n\\nprint(result)\\n\\n\\n`\\nq.options = `\\nA: Tony/19.0/11-2020\\n${OPTION_SPLITER}\\nB: Tony/19/11-2020\\n${OPTION_SPLITER}\\nC: 2020/11/19-Tony\\n${OPTION_SPLITER}\\nD: 2020/11/19.0-Tony\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_06.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nscore = float(input('成績'))\\n\\nif score \u003e= 100:\\n level = 'A'\\n\\nif score \u003e= 90:\\n level = 'B'\\n\\nif score \u003e= 80:\\n level = 'C'\\n\\nif score \u003e= 70:\\n level = 'D'\\n\\nif score \u003e= 60:\\n level = 'E'\\n\\nelse:\\n level = 'F'\\n\\nprint(level)\\n\\n請問輸入 85 分會印出?\\n\\n`\\nq.options = `\\nA: B\\n${OPTION_SPLITER}\\nB: C\\n${OPTION_SPLITER}\\nC: D\\n${OPTION_SPLITER}\\nD: E\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_06.push(q)\\nvar BASIC_07 = []\\n\\nBASIC_07.title = '第三週_課堂中測驗'\\nBASIC_07.description = '變數、型態、輸入輸出'\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問以下敘述何者正確?\\n`\\nq.options = `\\nA: 串列的編號是從 0 開始\\n${OPTION_SPLITER}\\nB: 創造串列用一對中括號表示\\n${OPTION_SPLITER}\\nC: 串列不能為空\\n${OPTION_SPLITER}\\nD: 可以使用 len 方法取得串列長度\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_07.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\narr = [0]\\narr.append(10)\\narr.append(20)\\narr.append(30)\\narr.pop()\\narr = [40] + arr\\narr[1] = 50\\n\\nprint(arr)\\n\\n[40, 50, 10, 20]\\n`\\nq.options = `\\nA: [0, 10, 20, 30, 40]\\n${OPTION_SPLITER}\\nB: [0, 10, 20, 30, 40, 50]\\n${OPTION_SPLITER}\\nC: [40, 50, 10, 20]\\n${OPTION_SPLITER}\\nD: [40, 50, 10, 20, 30]\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_07.push(q)\\n\\n\\n// 3\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\narr = [1, 2, 3]\\narr = arr * 3 + arr\\nprint(len(arr))\\n`\\nq.options = `\\nA: 3\\n${OPTION_SPLITER}\\nB: 6\\n${OPTION_SPLITER}\\nC: 12\\n${OPTION_SPLITER}\\nD: 程式會出錯\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_07.push(q)\\n\\n// 4\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\narr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\\n\\na = arr[1]\\nb = arr[1:8]\\nc = arr[1:8:3]\\n\\nprint(a, b, c)\\n`\\nq.options = `\\nA: 1, [2, 3, 4, 5, 6, 7, 8, 9], [2, 5, 8]\\n${OPTION_SPLITER}\\nB: 1, [2, 3, 4, 5, 6, 7, 8], [2, 5, 8]\\n${OPTION_SPLITER}\\nC: 2, [2, 3, 4, 5, 6, 7, 8], [2, 5, 8]\\n${OPTION_SPLITER}\\nD: 2, [2, 3, 4, 5, 6, 7, 8, 9], [2, 5, 8]\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_07.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nscores = [98, 54, 64, 76, 89, 43, 96, 67, 77, 90]\\n\\nScores 是一個存放 10 位學生成績的陣列,請問如何用程式讓 scores 陣列裡面的分數由大排到小?\\n`\\nq.options = `\\nA: 先執行 scores.sort() 再執行 scores.reverse()\\n${OPTION_SPLITER}\\nB: 先執行 scores.reverse() 再執行 scores.sort()\\n${OPTION_SPLITER}\\nC: scores.sort()\\n${OPTION_SPLITER}\\nD: 以上皆非\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_07.push(q)\\n\\n// 6\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問最後一行會印出數值多少?\\n\\nlife = 100\\n\\nwhile life \u003e 0:\\n print('發動激光攻擊,並造成敵人 30 點傷害')\\n life -= 30\\n\\nprint('敵人已死亡')\\nprint(life)\\n`\\nq.options = `\\nA: 0\\n${OPTION_SPLITER}\\nB: -1\\n${OPTION_SPLITER}\\nC: -20\\n${OPTION_SPLITER}\\nD: -30\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_07.push(q)\\n\\n// 7\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\narr1 = list(range(5))\\narr2 = list(range(5, 10))\\narr3 = list(range(5, 10, -1))\\n\\nprint(arr1 + arr2 + arr3)\\n\\n`\\nq.options = `\\nA: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\\n${OPTION_SPLITER}\\nB: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\\n${OPTION_SPLITER}\\nC: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 6, 7, 6]\\n${OPTION_SPLITER}\\nD: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 6, 7, 6]\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_07.push(q)\\n\\n// 8\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\ni = 1\\nfor x in range(10):\\n i += 2\\n for y in range(10):\\n i += 3\\n\\nprint(i)\\n`\\nq.options = `\\nA: 111\\n${OPTION_SPLITER}\\nB: 123\\n${OPTION_SPLITER}\\nC: 321\\n${OPTION_SPLITER}\\nD: 以上皆非\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_07.push(q)\\n\\n\\n// 9\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nx = 0\\nwhile x \u003c 10:\\n x += 1\\n\\nfor y in range(10):\\n y += 1\\n\\nprint(x, y)\\n\\n`\\nq.options = `\\nA: 9, 9\\n${OPTION_SPLITER}\\nB: 9, 10\\n${OPTION_SPLITER}\\nC: 10, 9\\n${OPTION_SPLITER}\\nD: 10, 10\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_07.push(q)\\n\\n// 10\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問執行以下程式最後 index 會印出什麼?\\n\\narr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\\n\\nindex = 0\\nwhile(index \u003c 10):\\n print(arr[index])\\n if arr[index] == 6:\\n break\\n else:\\n index += 1\\n\\nprint(index)\\n`\\nq.options = `\\nA: 5\\n${OPTION_SPLITER}\\nB: 6\\n${OPTION_SPLITER}\\nC: 7\\n${OPTION_SPLITER}\\nD: 8\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_07.push(q)\\nvar BASIC_08 = []\\n\\nBASIC_08.title = '第三週_課後測驗'\\nBASIC_08.description = '變數、型態、輸入輸出'\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問執行以下程式會印出什麼?\\n\\na = [1, 2, 3]\\nb = [4, 5, 6]\\nc = (a + b)*2\\n\\nprint(c[1], c[9])\\n`\\nq.options = `\\nA: 1, 1\\n${OPTION_SPLITER}\\nB: 1, 4\\n${OPTION_SPLITER}\\nC: 2, 1\\n${OPTION_SPLITER}\\nD: 2, 4\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_08.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nfor i in range(50, 10, -9):\\n print(i)\\n\\n以下敘述何者錯誤\\n`\\nq.options = `\\nA: 會印出 4 個數字\\n${OPTION_SPLITER}\\nB: 印出的數字中最小的會是 14\\n${OPTION_SPLITER}\\nC: 印出的數字中最大的會是 41\\n${OPTION_SPLITER}\\nD: 由大印到小\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_08.push(q)\\n\\n\\n// 3\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nscores 是存放了 100 個學生的考試成績的串列,裡面的分數是由高排到低,你想要過濾掉最低分的五個程式,請問你要底下哪兩個程式碼片段去做到這件事情?\\n`\\nq.options = `\\nA: scores[:-5]\\n${OPTION_SPLITER}\\nB: scores[0:-4]\\n${OPTION_SPLITER}\\nC: scores[0:-5]\\n${OPTION_SPLITER}\\nD: scores[1:-5]\\n${OPTION_SPLITER}\\nE: scores[1:-4]\\n`\\nq.content = ``\\nq.answer = [0, 2]\\nBASIC_08.push(q)\\n\\n// 4\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n\\n執行以下程式依序會印出什麼?\\n\\nx = 4\\nwhile x \u003e 0:\\n if x % 4 == 0:\\n print(\\\"a\\\")\\n elif x - 2 \u003c 0:\\n print(\\\"b\\\")\\n elif x / 3 == 0:\\n print(\\\"c\\\")\\n else:\\n print(\\\"d\\\")\\n x = x - 1\\n\\n`\\nq.options = `\\nA: a, d, b, b\\n${OPTION_SPLITER}\\nB: a, d, c, b\\n${OPTION_SPLITER}\\nC: a, d, d, b\\n${OPTION_SPLITER}\\nD: d, d, d, b\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_08.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\naz = \\\"abcdefghijklmnopqrstuvwxyz\\\"\\n\\nresult = az[5] + az[5:10] + az[5:10:3]\\n\\nprint(result)\\n`\\nq.options = `\\nA: fghijfij\\n${OPTION_SPLITER}\\nB: ffghijfik\\n${OPTION_SPLITER}\\nC: ffghijfi\\n${OPTION_SPLITER}\\nD: fghijfi\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_08.push(q)\\nvar BASIC_09 = []\\n\\nBASIC_09.title = '第四週_課前測驗'\\nBASIC_09.description = '變數、型態、輸入輸出'\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\narr1 = list(range(5))\\narr2 = list(range(5, 10))\\narr3 = list(range(5, 10, 2))\\n\\nprint(arr1 + arr2 + arr3)\\n`\\nq.options = `\\nA: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\\n${OPTION_SPLITER}\\nB: [0, 1, 2, 3, 4, 5, 6, 7, 8, 7, 9]\\n${OPTION_SPLITER}\\nC: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 5, 7, 9]\\n${OPTION_SPLITER}\\nD: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 7, 9]\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_09.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\narr = [1, 2, 3, 4, 5, 6, 7, 8, 9]\\n\\narr = [arr[1]] + arr[1:5] + arr[1:5:2]\\n\\nprint(arr)\\n\\n請問執行以下程式最後印出 arr 會是什麼?\\n`\\nq.options = `\\nA: [1, 2, 3, 4, 2, 4]\\n${OPTION_SPLITER}\\nB: [2, 2, 3, 4, 5, 2, 4]\\n${OPTION_SPLITER}\\nC: [2, 2, 3, 4, 5, 6, 2, 4]\\n${OPTION_SPLITER}\\nD: [2, 2, 3, 4, 5, 6, 2, 4, 6]\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_09.push(q)\\n\\n\\n// 3\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問以下何者錯誤\\n\\narr = ['A', 'P', 'P', 'L', 'E']\\n\\ni = arr[1]\\nj = arr[1:4]\\nk = arr[1:4:2]\\nl = arr[1:4:-1]\\n`\\nq.options = `\\nA: i 是 ['p']\\n${OPTION_SPLITER}\\nB: j 是 ['P', 'P', 'L']\\n${OPTION_SPLITER}\\nC: k 是 ['P', 'L']\\n${OPTION_SPLITER}\\nD: l 是 []\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_09.push(q)\\n\\n// 4\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nwords = ['a', 'p', 'p', 'l', 'e']\\n\\na = words.index('p')\\nB = words.count('p')\\n\\nprint(a, b)\\n\\n`\\nq.options = `\\nA: 1, 1\\n${OPTION_SPLITER}\\nB: 1, 2\\n${OPTION_SPLITER}\\nC: 2, 1\\n${OPTION_SPLITER}\\nD: 2, 2\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_09.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nscores 是一個存放 10 位學生成績的陣列,請問執行以上程式後以下敘述何者錯誤?\\n\\nscores = [98, 54, 64, 76, 89, 43, 96, 67, 77, 90]\\nscores.sort()\\n\\nsum = 0\\nfor s in scores:\\n sum += s\\n\\na = scores[len(scores) - 1]\\nb = scores[0]\\nc = sum / (len(scores) - 1)\\n\\n\\n`\\nq.options = `\\nA: a 是最高分數\\n${OPTION_SPLITER}\\nB: b 是最低分數\\n${OPTION_SPLITER}\\nC: c 是平均分數\\n${OPTION_SPLITER}\\nD: 以上皆對\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_09.push(q)\\nvar BASIC_10 = []\\n\\nBASIC_10.title = '變數'\\nBASIC_10.description = '第四週_課堂中測驗'\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\ndef add(a, b=10, c=20):\\n return a + b + c\\n\\nresult = add(10) + add(10, 20) + add(10, 20, 30)\\n\\nprint(result)\\n\\n請問執行以下程式會印出什麼?\\n\\n`\\nq.options = `\\nA: 100\\n${OPTION_SPLITER}\\nB: 120\\n${OPTION_SPLITER}\\nC: 150\\n${OPTION_SPLITER}\\nD: 190\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_10.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\ndef add (a, b):\\n return a + b\\n\\ndef sub (a, b):\\n return a - b\\n\\ndef mult (a, b):\\n return a * b\\n\\nresult = mult(add(10, 20), sub(10, 20))\\n\\nprint(result)\\n\\n請問執行以下程式會印出什麼?\\n`\\nq.options = `\\nA: 300\\n${OPTION_SPLITER}\\nB: -300\\n${OPTION_SPLITER}\\nC: 900\\n${OPTION_SPLITER}\\nD: 900.0\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_10.push(q)\\n\\n\\n// 3\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\ndef add (a, b=10):\\n return a + b\\n\\nsum = add(10) + add(a=20) + add()\\nprint(sum)\\n\\n`\\nq.options = `\\nA: 30\\n${OPTION_SPLITER}\\nB: 50\\n${OPTION_SPLITER}\\nC: 70\\n${OPTION_SPLITER}\\nD: 程式會出錯\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_10.push(q)\\n\\n// 4\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\ndef hello(i):\\n print(i)\\n if i \u003e 0:\\n hello(i - 1)\\n\\nhello(10)\\n\\n請問執行以下程式會印出幾個數字?\\n\\n`\\nq.options = `\\nA: 9\\n${OPTION_SPLITER}\\nB: 10\\n${OPTION_SPLITER}\\nC: 11\\n${OPTION_SPLITER}\\nD: 12\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_10.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = min(2, 3, 4, 5)\\nb = max(2, 3, 4, 5)\\nc = pow(a, b)\\nd = round(c / b)\\n\\nprint(d)\\n\\n請問執行以下程式會印出什麼?\\n\\n`\\nq.options = `\\nA: 6\\n${OPTION_SPLITER}\\nB: 7\\n${OPTION_SPLITER}\\nC: 6.0\\n${OPTION_SPLITER}\\nD: 7.0\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_10.push(q)\\n\\n// 6\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n請問產生 0-1 的隨機小數該執行?\\n\\nfrom random import random\\n\\n`\\nq.options = `\\nA: random()\\n${OPTION_SPLITER}\\nB: randrange()\\n${OPTION_SPLITER}\\nC: random.randrange()\\n${OPTION_SPLITER}\\nD: random.random()\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_10.push(q)\\n\\n// 7\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nimport random\\n\\na = random.randrange(10)\\nb = random.randrange(10, 50)\\nc = random.randrange(10, 50, 3)\\n\\n請問以下敘述何者錯誤?\\n`\\nq.options = `\\nA: a 可能是 10\\n${OPTION_SPLITER}\\nB: b 可能是 10\\n${OPTION_SPLITER}\\nC: c 可能是 10\\n${OPTION_SPLITER}\\nD: c 可能是 40\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_10.push(q)\\n\\n// 8\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = time.time()\\ntime.sleep(3)\\nb = time.time()\\nprint(a - b)\\n\\n請問最後印出的數字最接近以下何者?\\n`\\nq.options = `\\nA: 0\\n${OPTION_SPLITER}\\nB: 3\\n${OPTION_SPLITER}\\nC: -3\\n${OPTION_SPLITER}\\nD: 程式最後不會印出任何東西\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_10.push(q)\\n\\n\\n// 9\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\ndef fry (food):\\n return '煎' + food\\n\\ndef sauce(food):\\n return food + '醬'\\n\\ndef add (food_1, food_2):\\n return food_1 + '佐' + food_2\\n\\n\\n請問以下和者可以做出「煎培根佐義大利肉醬佐奶油醬」?\\n`\\nq.options = `\\nA: fry(add(sauce(add('培根', '義大利肉')), sauce('奶油')))\\n${OPTION_SPLITER}\\nB: add(fry('培根'), add(sauce('義大利肉'), sauce('奶油')))\\n${OPTION_SPLITER}\\nC: fry(sauce(add(add('培根', '義大利肉'), sauce('奶油'))))\\n${OPTION_SPLITER}\\nD: fry(add('培根', add(sauce('義大利肉'), sauce('奶油'))))\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_10.push(q)\\n\\n// 10\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = 10\\n\\ndef test ():\\n a = 100\\n print(a)\\n\\nprint(a)\\ntest()\\nprint(a)\\n\\n請問執行以下程式會印出什麼?\\n\\n`\\nq.options = `\\nA: 10, 100, 10\\n${OPTION_SPLITER}\\nB: 10, 100, 100\\n${OPTION_SPLITER}\\nC: 100, 100, 100\\n${OPTION_SPLITER}\\nD: 10, 10, 10\\n`\\nq.content = ``\\nq.answer = [0]\\nBASIC_10.push(q)\\n\\nvar BASIC_11 = []\\n\\nBASIC_11.title = '第四週_課後測驗'\\nBASIC_11.description = '變數、型態、輸入輸出'\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\narr = [80, 70, 60, 50, 40]\\n\\narr.sort()\\narr.pop()\\narr.reverse()\\narr.pop()\\n\\na = min(arr)\\nb = max(arr)\\n\\nprint(a, b)\\n\\n執行以下程式會印出什麼?\\n`\\nq.options = `\\nA: 40, 50\\n${OPTION_SPLITER}\\nB: 50, 60\\n${OPTION_SPLITER}\\nC: 50, 70\\n${OPTION_SPLITER}\\nD: 70, 80\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_11.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你需要去编高程式碼來產生隨機浮點數,最小值是 0.0 最大值1.0 你應該使用哪個語法?\\n`\\nq.options = `\\nA. random.randrange(0.0, 1.0)\\n${OPTION_SPLITER}\\nB. random.randrange()\\n${OPTION_SPLITER}\\nC. random.randint(0, 1)\\n${OPTION_SPLITER}\\nD. random.random()\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_11.push(q)\\n\\n\\n// 3\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nlist_1 = [1, 2]\\nlist_2 = [3, 4]\\nlist_3 = list_1 + list_2\\nlist_4 = list_3 * 3\\nprint(list_4)\\n`\\nq.options = `\\nA. [[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]]\\n${OPTION_SPLITER}\\nB. [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]\\n${OPTION_SPLITER}\\nC. [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]\\n${OPTION_SPLITER}\\nD. [3, 6, 9, 12]\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_11.push(q)\\n\\n// 4\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你在一個為AdventureWorks開發遊戲的国隊工作。\\n你需要编寫程式碼來産生一個隨機數來符合以下要求\\n數字是5的倍數。\\n最低的數字是5。\\n*最高的數字是100。\\n兩式碼片段將符合要求?每個正的答案都提供了一個院整的解決方案,選兩個。\\n\\n底下有兩個選項的程式,會產生數字是 5 到 100 之間 5 的倍數的數字(5, 10, 15, … 95, 100)\\n`\\nq.options = `\\nA. print(randint(0, 20) * 5)\\n${OPTION_SPLITER}\\nB. print(randint(1, 20) * 5)\\n${OPTION_SPLITER}\\nC. print(randrange(5, 105, 5))\\n${OPTION_SPLITER}\\nD. print(randrange(0, 100, 5))\\n`\\nq.content = ``\\nq.answer = [1, 2]\\nBASIC_11.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你要產生一個隨機數整數,這個隨機數字最大是 11 最小是 5 請問你會用到底下哪兩個方法?\\n\\n\\n`\\nq.options = `\\nA. random.randint(5 , 12)\\n${OPTION_SPLITER}\\nB. random.randrange(5 , 12)\\n${OPTION_SPLITER}\\nC. random.randint(5 , 11)\\n${OPTION_SPLITER}\\nD. random.randrange(5 , 11)\\n`\\nq.content = ``\\nq.answer = [1, 2]\\nBASIC_11.push(q)\\n\\nvar BASIC_12 = []\\n\\nBASIC_12.title = '第五週_課前測驗'\\nBASIC_12.description = '變數、型態、輸入輸出'\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\ns = '我的生日是%d月份%s座,今日幸運指數%d%%' % (11, '天蠍座', 100)\\n\\nprint(s)\\n\\n請問執行以下程式最後會印出什麼?\\n\\n`\\nq.options = `\\nA: 我的生日是11月份天蠍座,今日幸運指數100%\\n${OPTION_SPLITER}\\nB: 我的生日是11月份天蠍座,今日幸運指數100%%\\n${OPTION_SPLITER}\\nC: 我的生日是11月份天蠍座座,今日幸運指數100%\\n${OPTION_SPLITER}\\nD: 型態不符合,程式出錯\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_12.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\narr = [1, 2, 3]\\narr = arr * 4 + arr\\n\\na = arr.count(1)\\nb = arr.index(1)\\nc = len(arr)\\n\\nprint(a, b, c)\\n\\n請問執行以下程式分別會印出什麼?\\n`\\nq.options = `\\nA: 5, 1, 15\\n${OPTION_SPLITER}\\nB: 4, 0, 15\\n${OPTION_SPLITER}\\nC: 5, 0, 12\\n${OPTION_SPLITER}\\nD: 5, 0, 15\\n`\\nq.content = ``\\nq.answer = [3]\\nBASIC_12.push(q)\\n\\n\\n// 3\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nfor i in range(400, 800, 50):\\n print(i)\\n\\n執行以下程式後,請問下列敘述何者正確?\\n`\\nq.options = `\\nA: 總共會印出 9 個數字\\n${OPTION_SPLITER}\\nB: 印出的最小數字是 400\\n${OPTION_SPLITER}\\nC: 印出的最大數字是 800\\n${OPTION_SPLITER}\\nD: 變數 i 最後的值是 800\\n`\\nq.content = ``\\nq.answer = [1]\\nBASIC_12.push(q)\\n\\n// 4\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\ngrid = [\\n ['A', 'B', 'C'],\\n ['D', 'E', 'F'],\\n ['G', 'H', 'I'],\\n]\\n\\nprint(grid[2][2])\\n\\n`\\nq.options = `\\nA: 'A'\\n${OPTION_SPLITER}\\nB: 'E'\\n${OPTION_SPLITER}\\nC: 'I'\\n${OPTION_SPLITER}\\nD: 'H'\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_12.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\na = len(range(10))\\nb = len(range(10, 50))\\nc = len(range(10, 50, 5))\\n\\nprint(a, b, c)\\n\\n請問執行以下程式 a, b, c 分別會印出什麼?\\n`\\nq.options = `\\nA: 10, 39, 8\\n${OPTION_SPLITER}\\nB: 10, 40, 8\\n${OPTION_SPLITER}\\nC: 10, 40, 9\\n${OPTION_SPLITER}\\nD: 9, 39, 9\\n`\\nq.content = ``\\nq.answer = [2]\\nBASIC_12.push(q)\\n\\nvar MOCK_1 = []\\n\\nMOCK_1.title = '模擬測驗卷 (1)'\\nMOCK_1.description = ''\\n//1\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n您正在創建一個 Python 腳本來執行輸入並檢查大寫和小寫。\\n\\n你應該使用哪四個程式碼片段來開發解決方案?回答時,請將適合的程式碼片段從程式碼片段清單移動到回答區,並按正確的順序排列\\n`\\nq.options = `\\nelif name.upper() == name:\\n print(name,\\\"是全部大寫.\\\")\\n${OPTION_SPLITER}\\nname = input(\\\"輸入你的英文名字:\\\")\\n${OPTION_SPLITER}\\nelse :\\n print(name,\\\"是大小寫混合.\\\")\\n${OPTION_SPLITER}\\nif name.lower() == name:\\n print(name,\\\"是全部小寫.\\\")\\n${OPTION_SPLITER}\\nelse:\\n print(name,\\\"是大寫.\\\")\\n${OPTION_SPLITER}\\nelse:\\n print(name,\\\"是小寫.\\\")\\n`\\nq.content = `\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n`\\nq.answer = [1, 3, 0, 2]\\nMOCK_1.push(q)\\n\\n\\n\\n//2\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n您正在構建一個Python程式,它將顯示從2到100中的所有質數。\\n\\n你要如何完成程式碼?回答時,請將適合的程式碼片段拖動到正確的位置。每個程式碼片段都可以使用一次,多次,或者不使用。你可能需要在窗格之間拖動分欄的寬度或捲動位置來查看內容。\\n\\n注意:每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\np = 2\\nwhile p \u003c= 100:\\n is_prime = True\\n${OPTION_SPLITER}\\np = 2\\nis_prime = True\\nwhile p \u003c= 100:\\n${OPTION_SPLITER}\\nbreak\\n${OPTION_SPLITER}\\ncontinue\\n${OPTION_SPLITER}\\np = p + 1\\n${OPTION_SPLITER}\\nfor i in range(2, p):\\n if p /i == 0:\\n is_prime = False\\n${OPTION_SPLITER}\\nfor i in range (2, p):\\n if p % i == 0:\\n is_prime = False\\n`\\nq.content = `\\n${CONTENT_SELECTER}\\n ${CONTENT_SELECTER}\\n ${CONTENT_SELECTER}\\n if is_prime == True:\\n print(p)\\n ${CONTENT_SELECTER}\\n\\n`\\nq.answer = { 0: 0, 1: 6, 2: 2, 3: 4 }\\nMOCK_1.push(q)\\n\\n\\n//3\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你正在編寫一個Python程式去驗證員工編號。\\n\\n員工編號的格式必須為ddd-dd-dddd,並且只包含數字和破折號。如果格式正確,則程式必須列印True,如果格式不正確,則列印 False。\\n你要如何完成這段程式碼?回答時,在回答區選擇適當的程式碼片段。\\n`\\nq.options = `\\nemployee_number = \\\"\\\"\\nemployee_number = \\\"sentinel\\\"\\n${OPTION_SPLITER}\\nwhile employee_number != \\\"\\\":\\nwhile employee_number != \\\"sentinel\\\":\\n${OPTION_SPLITER}\\nvalid = False\\nvalid = True\\n${OPTION_SPLITER}\\nvalid = False\\nvalid = True\\n`\\nq.content = `\\n${CONTENT_SELECTER}\\nparts = \\\"\\\"\\n${CONTENT_SELECTER}\\n ${CONTENT_SELECTER}\\n employee_number = input(\\\"輸入員工編號(ddd-dd-dddd): \\\")\\n parts = employee_number . split('-')\\n if len(parts)== 3:\\n if len(parts[0]) == 3 and len(parts[1]) == 2 and len(parts[2]) == 4:\\n if patts[0].isdigit() and parts[1].isdigit() and parts[2].isdigit():\\n ${CONTENT_SELECTER}\\nprint(valid)\\n`\\nq.answer = { 0: 0, 1: 1, 2: 0, 3: 1 }\\nMOCK_1.push(q)\\n\\n\\n// 4\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你為一家為所有年齡發行媒體的公司工作。\\n\\n你正在編寫一個根據使用者的年齡進行分級的函數。這個函數必須滿足以下要求:\\n\\n任何 18 歲或以上的人都會收到\\\"A\\\"的分級。\\n任何 13 歲或以上,但小於 18 歲的人都會收到\\\"T\\\"的分級。\\n任何12歲或更年輕的人都會收到\\\"C\\\"的分級。\\n如果年齡未知,則設定為\\\"C\\\"的分級。\\n\\n您需要完成代碼以滿足要求。\\n\\n你要如何完成這段程式碼?回答時,在回答區選擇適當的程式碼片段。\\n`\\nq.options = `\\nage \u003c 13:rating = \\\"C\\\"\\nage \u003c 18:rating = \\\"T\\\"\\n:rating = \\\"A\\\"\\nage == None:rating = \\\"C\\\"\\n${OPTION_SPLITER}\\nage \u003c 13:rating = \\\"C\\\"\\nage \u003c 18:rating = \\\"T\\\"\\n:rating = \\\"A\\\"\\nage == None:rating = \\\"C\\\"\\n${OPTION_SPLITER}\\nage \u003c 13:rating = \\\"C\\\"\\nage \u003c 18:rating = \\\"T\\\"\\n:rating = \\\"A\\\"\\nage == None:rating = \\\"C\\\"\\n${OPTION_SPLITER}\\nage \u003c 13:rating = \\\"C\\\"\\nage \u003c 18:rating = \\\"T\\\"\\n:rating = \\\"A\\\"\\nage == None:rating = \\\"C\\\"\\n\\n`\\nq.content = `\\ndef get_rating(age):\\n rating = \\\"\\\"\\n if${CONTENT_SELECTER}\\n elif${CONTENT_SELECTER}\\n elif${CONTENT_SELECTER}\\n else${CONTENT_SELECTER}\\n return rating\\n`\\nq.answer = { 0: 0, 1: 1, 2: 3, 3: 2 }\\nMOCK_1.push(q)\\n\\n// 5\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你正在使用Python編寫一個數學工具。\\n\\n你正在編寫一個函數來計算方根。\\n\\n這個函數必須滿足以下要求:\\n\\n如果 a 是非負數,則回傳a ** (1 / b)\\n如果 a 是負數且為偶數,則回傳\\\"結果是虛數\\\"\\n如果 a 是負數且為奇數,則回傳-(-a) ** (1 / b)\\n\\n你要如何完成這段程式碼?回答時,在回答區選擇適當的程式碼片段。\\n`\\nq.options = `\\nif a \u003e= 0:\\n${OPTION_SPLITER}\\nelse:\\n${OPTION_SPLITER}\\nif a % 2 == 0:\\n${OPTION_SPLITER}\\nelse:\\n`\\nq.content = `\\ndef safe_root(a,b):\\n ${CONTENT_SELECTER}\\n answer = a **(1 / b)\\n ${CONTENT_SELECTER}\\n ${CONTENT_SELECTER}\\n answer = \\\"結果是虛數\\\"\\n ${CONTENT_SELECTER}\\n answer = -(-a)**(1/b)\\n return answer\\n`\\nq.answer = { 0: 0, 1: 0, 2: 0, 3: 0 }\\nMOCK_1.push(q)\\n\\n// 6\\nq = {}\\nq.type = SELECT\\nq.description = `\\n您正在為線上產品銷售公司開發Python應用程序。\\n\\n你需要該程式逐一查看產品清單,並在找到目標產品識別碼時進行跳脫的動作。\\n\\n你要如何完成這段程式嗎?回答時,在回答區選擇適當的程式碼片段。\\n\\n注意:每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\nwhile\\nfor\\nif\\nbreak\\n${OPTION_SPLITER}\\nwhile\\nfor\\nif\\nbreak\\n${OPTION_SPLITER}\\ncontinue\\nbreak\\nindex += 1\\nindex = 1\\n`\\nq.content = `\\nproductIdList = [0,1,2,3,4,5,6,7,8,9]\\nindex = 0\\n${CONTENT_SELECTER}(index \u003c 10):\\n print(productIdList[index])\\n\\n if productIdList[index] == 6:\\n ${CONTENT_SELECTER}\\n else:\\n ${CONTENT_SELECTER}\\n`\\nq.answer = { 0: 0, 1: 3, 2: 2 }\\nMOCK_1.push(q)\\n\\n\\n// 7\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你正在設計一個決策結構來將學生的數字等級轉換為字母等級。這個程式必須按照下表中指定的字母等級分配:\\n\\n百分比範圍 =\u003e 字母等級\\n90 到 100 =\u003e A\\n80 到 90 =\u003e B\\n70 到 79 =\u003e C\\n65 到 69 =\u003e D\\n0 到 64 =\u003e F\\n\\n例如,如果使用者輸入 90,則輸出應該是\\\"您的字母等級為A。\\\",相同的,如果使用者輸入89則輸出應該為\\\"您的字母等級為 B。\\\"\\n\\n你要如何完成這段程式碼?回答時,在回答區選擇適當的程式碼片段。\\n`\\nq.options = `\\nif grade \u003c= 90:\\nif grade \u003e= 90:\\nelif grade \u003e 90:\\nelif grade \u003e= 90:\\n${OPTION_SPLITER}\\nif grade \u003e 80:\\nif grade \u003e= 80:\\nelif grade \u003e 80:\\nelif grade \u003e= 80:\\n${OPTION_SPLITER}\\nif grade \u003e 70:\\nif grade \u003e= 70:\\nelif grade \u003e 70:\\nelif grade \u003e= 70:\\n${OPTION_SPLITER}\\nif grade \u003e 65:\\nif grade \u003e= 65:\\nelif grade \u003e 65:\\nelif grade \u003e= 65:\\n`\\nq.content = `\\n#字母等級轉換器\\n\\ngrade = int(input(\\\"請輸入數字等級\\\"))\\n\\n${CONTENT_SELECTER}\\n letter_grade = 'A'\\n${CONTENT_SELECTER}\\n letter_grade = 'B'\\n${CONTENT_SELECTER}\\n letter_grade = 'C'\\n${CONTENT_SELECTER}\\n letter_grade = 'D'\\nelse:\\n letter_grade = 'F'\\n\\nprint(\\\"你的文字等級是:\\\",letter_grade)\\n`\\nq.answer = {0: 1, 1: 3, 2: 3, 3: 3}\\nMOCK_1.push(q)\\n\\n// 8\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你正在開發一個線上遊戲的Python應用程式。\\n\\n你需要創建符合以下條件的函數:\\n\\n函數名為 update_score\\n函數接收當前分數和一個值\\n函數將值添加到當前分數\\n函數返回新分數\\n\\n你要如何完成程式碼?回答時,請在回答區中選擇適當的程式碼片段。\\n`\\nq.options = `\\nupdate_score\\ndef update_score\\nreturn update_score\\n${OPTION_SPLITER}\\n(current,value):\\n():\\n(current,value)\\n()\\n${OPTION_SPLITER}\\npass current\\nreturn current\\nreturn\\npass\\n`\\nq.content = `\\n${CONTENT_SELECTER} ${CONTENT_SELECTER}\\n current += value\\n ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 1, 1: 0, 2: 1}\\nMOCK_1.push(q)\\n\\n// 9\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你為公司開發Python應用程式。\\n\\n你希望在程式碼中添加注釋,以便其他團隊成員夠理解它。\\n\\n你應該麼做?\\n`\\nq.options = `\\n將注釋放在任何一行的 # 符號之後。\\n${OPTION_SPLITER}\\n將備註放在第一行程式碼之前,用空白行隔開。\\n${OPTION_SPLITER}\\n將注釋放在最後一行程式碼之後,用空行隔開。\\n${OPTION_SPLITER}\\n將注釋放在任何一行的括弧內。\\n`\\nq.content = ``\\nq.answer = [0]\\nMOCK_1.push(q)\\n\\n// 10\\nq = {}\\nq.type = TRUE_OR_FALSE\\nq.description = `\\n你創建一個函數,透過使用Python計算數字的次方。\\n\\n你需要確保該函數有注釋。\\n\\n你創建以下程式碼。其中包括的行號只是做為參考\\n\\n01 # calc_power 函數計算指數\\n02 # x 是底\\n03 # y 是次方\\n04 # 返回 x 的 y 次方的值\\n05 def calc_power( x , y ):\\n06 comment = \\\"# 返回值\\\"\\n07 return x ** y #x的y次方\\n\\n針對下列每個敘述,如果該敘述是正確的就選擇Yes。否則請選擇No。\\n\\n`\\nq.options = `\\n01 到 04 行在語法檢查時將被忽略。\\n${OPTION_SPLITER}\\n02 和 03 行中的井字符號(#)非必填。\\n${OPTION_SPLITER}\\n06 行中的字串將被解釋為注釋。\\n${OPTION_SPLITER}\\n07 行包含內嵌注釋。\\n`\\nq.content = ``\\nq.answer = { 0: 'yes', 1: 'no', 2: 'no', 3: 'yes' }\\nMOCK_1.push(q)\\n\\n// 11\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nAdventure Works Cycles公司正在創建一個程式,允許客戶在騎自行車時紀錄行駛的公里數。該程式將根據客戶日誌的公里數發送消息。\\n\\n你創建以下的Python程式碼。其中包含的行號只是做為參考。\\n\\n01 \\n02 name = input(\\\"你的名字是什麼?\\\")\\n03 return name\\n04 \\n05 calories = kms * calories_per_km\\n06 return calories\\n07 distance = int(input(\\\"你這週騎乘了多少公里數\\\"))\\n08 burn_rate = 50\\n09 biker = get_name()\\n10 calories_burned = calc_calories(distance, burn_rate)\\n11 print(biker,\\\",你燃燒了大約\\\",calories_burned,\\\"卡路里.\\\")\\n\\n你需要定義二個必要的函數。\\n\\n哪些程式碼片段你將使用在 01 及 04 行中?每個正確的答案都提供了部分的解決方案。請選擇二個。\\n`\\nq.options = `\\n01 def get_name():\\n${OPTION_SPLITER}\\n01 def get_name(biker):\\n${OPTION_SPLITER}\\n01 def get_name(name):\\n${OPTION_SPLITER}\\n04 def calc_calories():\\n${OPTION_SPLITER}\\n04 def calc_calories(kms,burn_rate):\\n${OPTION_SPLITER}\\n04 def calc_calories(kms,calories_per_km):\\n`\\nq.content = ``\\nq.answer = [0, 5]\\nMOCK_1.push(q)\\n\\n// 12\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你為公司開發Python應用程式。\\n\\n你需要接受來自使用者的輸入並將該資訊列印到使用者螢幕。\\n\\n你已開始使用以下程式碼。其中包含的行號只是做為參考。\\n\\n01 print(\\\"你的名字是什麼?\\\")\\n02\\n03 print(name)\\n\\n你應該在 02 行編寫哪個程式碼?\\n`\\nq.options = `\\ninput(name)\\n${OPTION_SPLITER}\\nname = input\\n${OPTION_SPLITER}\\ninput(\\\"name\\\")\\n${OPTION_SPLITER}\\nname = input()\\n`\\nq.content = ``\\nq.answer = [3]\\nMOCK_1.push(q)\\n\\n// 13\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你為你的學校開發了一個Python應用程式。\\n\\n你需要將資料讀寫到文字檔中。如果檔案不存在,則必須創建它,如果檔案具有內容,則必須刪除內容。\\n\\n你應該使用哪個程式碼?\\n`\\nq.options = `\\nopen(\\\"local_data\\\",\\\"w\\\")\\n${OPTION_SPLITER}\\nopen(\\\"local_data\\\",\\\"w+\\\")\\n${OPTION_SPLITER}\\nopen(\\\"local_data\\\",\\\"r\\\")\\n${OPTION_SPLITER}\\nopen(\\\"local_data\\\",\\\"r+\\\")\\n`\\nq.content = ``\\nq.answer = [0]\\nMOCK_1.push(q)\\n\\n// 14\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你正在編寫一個Python程式來自動化庫存。你的第一個任務是讀取庫存交易紀錄的檔案。該檔案包含前一天的銷售額,包括物料編號、價格和數量。\\n\\n下面顯示的是檔案中的資料範例:\\n\\n10 , 200 , 5\\n20 , 100 , 1\\n\\n程式碼中必須符合以下的需求:\\n\\n檔案的每一行都必須讀取和列印。\\n如果遇到空行,則必須忽略。\\n在完成所有行的讀取後,必須關閉檔案。\\n\\n你創建了以下的程式碼。其中包含的行號只是做為參考。\\n\\n01 inventory = open(\\\"inventory.txt\\\",\\\"r\\\")\\n02 eof=False\\n03 while rof == False:\\n04 line = inventory.readline()\\n05 \\n06 \\n07 print(line.strip())\\n08 else:\\n09 print(\\\"檔案結束\\\")\\n10 eof=True\\n11 inventory.close()\\n\\n在 05 及 06 行你應該編寫那些程式碼?\\n`\\nq.options = `\\n05 if line != '\\\\\\\\n':\\n06 if line != \\\"\\\":\\n${OPTION_SPLITER}\\n05 if line != '':\\n06 if line != \\\"\\\\\\\\n\\\":\\n${OPTION_SPLITER}\\n05 if line != '':\\n06 if line != \\\"\\\":\\n${OPTION_SPLITER}\\n05 if line != '\\\\\\\\n':\\n06 if line != None:\\n`\\nq.content = ``\\nq.answer = [0]\\nMOCK_1.push(q)\\n\\n// 15\\nq = {}\\nq.type = SELECT\\nq.description = `\\nTailspin Toys 公司正在為員工建立一個籃球場,以提高公司士氣。\\n\\n你正在創建一個Python程式,員工可以使用它來記錄他們的平均得分。\\n\\n該程式必須允許使用者輸入他們的名字和當前分數。該程式將輸出使用者名和使用者的平均分數。輸出必須符合以下要求:\\n\\n使用者姓名必須是靠左對齊的。\\n如果使用者姓名少於20個字元,則必須在右側添加額外的空間。\\n平均分數必須有三個位置在小數點的左邊和一個位置在小數點右邊(XXX.X)。\\n\\n你要如何完成程式碼?回答時,請在回答區中選擇適當的程式碼片段。\\n\\n注意:每個正確的選擇都可獲得一分。\\n========================================\\n\\nname = input(\\\"你的名字是什麼?\\\")\\nscore = 0\\ncount = 0\\nsum = 0\\nwhile (score !=1):\\n`\\nq.options = `\\n%-20?\\n%-20d\\n%-20f\\n%-20s\\n${OPTION_SPLITER}\\n%1.5?\\n%5.1f\\n%5.1s\\n%1.5f\\n`\\nq.content = `\\nname = input(\\\"你的名字是什麼?\\\")\\nscore = 0\\ncount = 0\\nsum = 0\\nwhile (score !=1):\\n score = int(input(\\\"輸入你的分數:(輸入-1結束程式)\\\"))\\n if score == -1:\\n break\\n sum += score\\n count += 1\\naverage = sum / count\\nprint(\\\"${CONTENT_SELECTER},你的平均分數是:${CONTENT_SELECTER}\\\"%(name,average))\\n\\n`\\nq.answer = {0: 3, 1: 1}\\nMOCK_1.push(q)\\n\\n// 16\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n你正在編寫一個處理檔案的函數。\\n\\n如果檔案不存在,則需要確保該函數返回None。如果該檔案確實存在,則該函數必須返回第一行的內容。\\n\\n你編寫以下的程式碼:\\n\\nimport os\\ndef get_first_line(filename)\\n\\n你應該如何安排這些程式碼片段的順序來完成函數?回答時,請將適合的程式碼片段從程式碼片段清單移動到回答區,並按正確的順序排列。\\n`\\nq.options = `\\nwith open(filename,'r') as file:\\n${OPTION_SPLITER}\\nelse:\\n${OPTION_SPLITER}\\n return file.readline()\\n${OPTION_SPLITER}\\n return None\\n${OPTION_SPLITER}\\nif os.path.isfile(filename):\\n`\\nq.content = `\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n`\\nq.answer = {0: 4, 1: 3, 2: 1, 3: 0, 4: 2}\\nMOCK_1.push(q)\\n\\n// 17\\nq = {}\\nq.type = SELECT\\nq.description = `\\nBest For You 有機公司需要一個簡單的程式,話務中心將使用該程式輸入新的咖啡品種的調查資料。\\n\\n該程式必須接受輸入並返回基於五顆星規模的平均評等。輸出必須四捨五入到小數第二位。\\n\\n你必須完成這個程式碼以符合需求。\\n\\n你要如何完成這個程式碼?回答時,在回答區選擇適當的程式碼片段。\\n\\n注意:每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\nprint(\\\"請輸入下一個評等(1-5),完成請輸入-1\\\")\\nfloat(input(\\\"請輸入下一個評等(1-5),完成請輸入-1\\\"))\\ninput(\\\"請輸入下一個評等(1-5),完成請輸入-1\\\")\\ninput\\\"請輸入下一個評等(1-5),完成請輸入-1\\\")\\n${OPTION_SPLITER}\\noutput(\\\"新咖啡的平均星級評等是:\\\"\\nconsole.input(\\\"新咖啡的平均星級評等是:\\\"\\nprintline(\\\"新咖啡的平均星級評等是:\\\"\\nprint(\\\"新咖啡的平均星級評等是:\\\"\\n${OPTION_SPLITER}\\nformat(average,'.2f'))\\nformat(average,'.2d'))\\n{average,'.2f'}\\nformat.average.{2d}\\n`\\nq.content = `\\nsum = count = don = 0\\naverage = 0.0\\n\\nwhile (done != -1):\\n rating = ${CONTENT_SELECTER}\\n\\n if rating == -1:\\n break\\n sum += rating\\n count +=1\\n\\naverage = float(sum / count)\\n\\n${CONTENT_SELECTER} + ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 2, 1: 3, 2: 0}\\nMOCK_1.push(q)\\n\\n// 18\\nq = {}\\nq.type = TRUE_OR_FALSE\\nq.description = `\\n在下列的語法敘述中,如果是正確的就選擇Yes,\\n否則請選擇No。\\n`\\nq.options = `\\n在try語法中可以有一個或多個except子句。\\n${OPTION_SPLITER}\\n在try語法中可以有一個沒有except子句的finally子句。\\n${OPTION_SPLITER}\\n在try語法中可以一個finally子句與except子句。\\n${OPTION_SPLITER}\\n在try語法中可以有一個或多個finally子句。\\n`\\nq.content = ``\\nq.answer = {0: 'yes', 1: 'yes', 2: 'yes', 3: 'no'}\\nMOCK_1.push(q)\\n\\n// 19\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n在這個問題中需要你評估帶底線的文字已確定它是否敘述正確。\\n\\n你編寫一下程式碼:\\n\\nimport sys\\ntry:\\n file_in = open(\\\"in.txt\\\",'r')\\n file_out = open(\\\"out.txt\\\",'w+')\\nexcept IOError:\\n print('無法開啟',file_name)\\nelse:\\n i = 1\\n for line in file_in:\\n print(line.rstrip())\\n file_out.write(\\\"line \\\" + str(i) + \\\": \\\" + line)\\n i = i + 1\\n file_in.close()\\n file_out.close()\\n\\nout.txt檔不存在。你執行程式碼。「這個程式碼將執行而不出錯」!!\\n\\n再檢查帶底線的文字敘述。如果語法正確,請選擇\\\"不需要改變\\\"。如果語法不正確,請選擇語法正確的答案選項\\n`\\nq.options = `\\n不需要改變。\\n${OPTION_SPLITER}\\n程式碼執行,但產生邏輯錯誤。\\n${OPTION_SPLITER}\\n程式碼將產生執行階段錯誤。\\n${OPTION_SPLITER}\\n程式碼將產生語法錯誤。\\n`\\nq.content = ``\\nq.answer = [3]\\nMOCK_1.push(q)\\n\\n// 20\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你正在創建一個函數用來讀取資料檔案並且利印檔案的每一行。\\n\\n你編寫以下的程式碼。其中包含的行號只是做為參考。\\n\\n01 import os\\n02 def read_file(file):\\n03 line = None\\n04 if os.path.isfile(file):\\n05 data = open(file,'r')\\n06 while line != '':\\n07 line = data.readline()\\n08 print(line)\\n\\n即便檔案不存在,程式碼也會嘗試讀取這個檔案。\\n\\n你需要更正程式碼。\\n\\n哪三行有縮排問題?每個正確的答案都提供了部分的解決方案,請選擇三個。\\n`\\nq.options = `\\nLine 01\\n${OPTION_SPLITER}\\nLine 02\\n${OPTION_SPLITER}\\nLine 03\\n${OPTION_SPLITER}\\nLine 04\\n${OPTION_SPLITER}\\nLine 05\\n${OPTION_SPLITER}\\nLine 06\\n${OPTION_SPLITER}\\nLine 07\\n${OPTION_SPLITER}\\nLine 08\\n`\\nq.content = ``\\nq.answer = [5, 6, 7]\\nMOCK_1.push(q)\\n\\n// 21\\nq = {}\\nq.type = SELECT\\nq.description = `\\n\\n你在評估以下程式碼時發現錯誤。其中包含的行號只是做為參考。\\n\\n01 numbers = [0,1,2,3,4,5,6,7,8,9]\\n02 index = 0\\n03 while (index \u003c 10)\\n04 print(numners[index])\\n05\\n06 if numbers(index) = 6\\n07 break\\n08 else:\\n09 index += 1\\n\\n你需要更正 03 行和 06 行中的程式碼。\\n\\n你要如何更正程式碼?根據程式碼片段中提供的資訊,使用下拉式功能表選擇每個問題的答案選項。\\n\\n注意:每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\nwhile(index \u003c 10):\\nwhile[index \u003c10]\\nwhile(index \u003c5):\\nwhile[index \u003c5]\\n${OPTION_SPLITER}\\nif numbers[index] == 6\\nif numbers[index] == 6:\\nif numbers(index) = 6:\\nif numbers(index) != 6\\n`\\nq.content = `\\n在 03 行中應該使用哪個程式碼片段?\\n${CONTENT_SELECTER}\\n在 06 行中應該使用哪個程式碼片段?\\n${CONTENT_SELECTER}\\n`\\nq.answer = {0: 0, 1: 1}\\nMOCK_1.push(q)\\n\\n// 22\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你為你的公司開發一個Python應用程式。\\n\\n你編寫了以下的程式碼:\\n\\nnumList = [1,2,3,4,5]\\nalphaList = [\\\"a\\\",\\\"b\\\",\\\"c\\\",\\\"d\\\",\\\"e\\\"]\\nprint(numList is alphaList)\\nprint(numList == alphaList)\\nnumList = alphaList\\nprint(numList is alphaList)\\nprint(numList == alphaList)\\n\\n根據程式碼片段中提供的資訊,使用下拉選單選擇每個問題的答案選項。\\n`\\nq.options = `\\nTrue\\nFalse\\n${OPTION_SPLITER}\\nTrue\\nFalse\\n${OPTION_SPLITER}\\nTrue\\nFalse\\n${OPTION_SPLITER}\\nTrue\\nFalse\\n`\\nq.content = `\\n在第一次 print 後會顯示什麼? ${CONTENT_SELECTER}\\n在第二次 print 後會顯示什麼? ${CONTENT_SELECTER}\\n在第三次 print 後會顯示什麼? ${CONTENT_SELECTER}\\n在第四次 print 後會顯示什麼? ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 1, 1: 1, 2: 0, 3: 0}\\nMOCK_1.push(q)\\n\\n// 23\\nq = {}\\nq.type = SELECT\\nq.description = `\\nSouthridge Video 需要一種方法來決定客戶租用DVD的費用,該費用取決於DVD歸還的時間。然而,在週四和週日也有特別的費率。\\n\\n費用結構如下所示:\\n\\n費用是每晚1.59美元。\\n如果DVD在晚上8點後返還,則客戶將被收取額外一天的費用。\\n如果影片是在星期天租的,那麼客戶即可享受 30% 的折扣。\\n如果影片是在星期四租地,那麼客戶即可以享受 50% 的折扣。\\n\\n你需要撰寫程式碼去滿足這個需求。\\n\\n你要如何完成這段程式碼?回答時,在回答區選擇適當的程式碼片段。\\n\\n注意:每個正確的選項都可獲得一分。\\n`\\nq.options = `\\n!= \\\"n\\\":\\n== \\\"n\\\":\\n== \\\"y\\\":\\n${OPTION_SPLITER}\\n== \\\"Sunday\\\":\\n\u003e= \\\"Sunday\\\":\\nis \\\"Sunday\\\":\\n${OPTION_SPLITER}\\n== \\\"Thursday\\\":\\n\u003c= \\\"Thursday\\\":\\nis \\\"Thursday\\\":\\n`\\nq.content = `\\n# Southridge Video, DVD 出租計算器\\nontime = input(\\\"影片是在晚上8點前返還的嗎? y 或 n\\\").lower()\\n\\ndays_rented = int(input(\\\"影片出租了幾天?\\\"))\\n\\nday_rented = input(\\\"影片是在星期幾出租?\\\").capitalize()\\n\\ncost_per_day = 1.59\\n\\nif ontime ${CONTENT_SELECTER}\\n days_rented += 1\\nif day_rented ${CONTENT_SELECTER}\\n total = (days_rented * cost_per_day)*0.7\\n\\nelif day_rented ${CONTENT_SELECTER}\\n total = (day_rented * cost_per_day)*0.5\\n\\nelse:\\n\\n total = days_ranted *cost_per_day\\n\\nprint(\\\"DVD的租借費用為:$\\\", total)`\\nq.answer = {0: 1, 1: 0, 2: 0}\\nMOCK_1.push(q)\\n\\n// 24\\nq = {}\\nq.type = SELECT\\nq.description = `\\nLucerne Publishing 公司需要一種方法來查詢出版物中特定字母的數量,以確保有一個良好的平衡。似乎有出現關於過度使用字母 e 的抱怨。你需要創建一個函數以滿足要求。\\n\\n你要如何完成這段程式碼?回答時,在回答區選擇適當的程式碼片段。\\n\\n注意:每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\nword_list in word:\\nword in word_list:\\nword == word_list:\\nword is word_list\\n${OPTION_SPLITER}\\nword is letter:\\nletter is word:\\nword in letter:\\nletter in word:\\n`\\nq.content = `\\n\\n#函數接受檔案中的文字清單,\\n# 以及要搜索的字母,\\n#返回該清單中特定字母的數量。\\n\\ndef count_letter(letter,word_list):\\n count = 0\\n for ${CONTENT_SELECTER}\\n if ${CONTENT_SELECTER}\\n count += 1\\n return count\\n\\nword_list = []\\n#word_list 是由檔案中取得.程式碼中並未顯示.\\n\\nletter = input(\\\"你想要計算哪個字母的數量\\\")\\nletter_count = count_letter(letter , word_list)\\nprint(\\\"一共有:\\\",letter_count,\\\"個字母\\\"+letter)\\n`\\nq.answer = {0: 1, 1: 3}\\nMOCK_1.push(q)\\n\\n// 25\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你創建以下程式來找出會議室並顯示房間名稱。其中包含的行號只是做為參考。\\n\\n01 rooms = {1 : 'Foyer',2 : 'Conference Room'}\\n02 room = input(\\\"輸入房間號碼:\\\")\\n03 if not room in rooms:\\n04 print('該房間並不存在.')\\n05 else:\\n06 print(\\\"房間名稱為\\\" + rooms[room])\\n\\n同事們回報說程式有時會產生不正確的結果。\\n\\n你需要對程式進行故障排除。根據程式碼片段中提供的資訊,使用下拉選單選擇每個問題的答案選項。\\n`\\nq.options = `\\nbool 與 string\\nfloat 與 bool\\nint 與 string\\nfloat 與 int\\n${OPTION_SPLITER}\\nbool\\nfloat\\nint\\nstring\\n${OPTION_SPLITER}\\n語法不正確\\n資料類型不匹配\\n變數命名錯誤\\n`\\nq.content = `\\n在 01 行中有哪兩種資料類型儲存在 rooms 清單中? ${CONTENT_SELECTER}\\n\\n在 02 行中room的資料類型是什麼? ${CONTENT_SELECTER}\\n在 03 行中為什麼會在rooms清單中找不到資料? ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 2, 1: 3, 2: 1}\\nMOCK_1.push(q)\\n\\n// 26\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你為你的公司開發一個Python應用程式。\\n\\n你有以下的程式碼。其中包含的行號只是做為參考。\\n\\n01 def test(a,b,c,d):\\n02 value = a + b * c - d\\n03 return value\\n\\n根據程式碼片段中提供的資訊使用下拉式選單選擇每個問題的答案選項\\n`\\nq.options = `\\na + b\\nb * c\\nc - d\\n${OPTION_SPLITER}\\n加( + )\\n減( - )\\n${OPTION_SPLITER}\\n(a + b) * (c - d)\\n(a + (b * c)) - d\\na + ((b * c) - d)\\n`\\nq.content = `\\n運算式的哪個部分將第一個進行計算? ${CONTENT_SELECTER}\\n運算式的哪個部分將第二個進行計算? ${CONTENT_SELECTER}\\n哪個運算式等於題目函數中的運算式? ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 1, 1: 0, 2: 1}\\nMOCK_1.push(q)\\n\\n// 27\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你為公司開發 Python 應用程式。\\n\\n一個名為 employees 的串列包含200個員工姓名,最後五名為公司管理階層。你需要去分割串列去顯示除了管理階層之外的所有員工。\\n\\n你應該使用哪兩個程式碼片段?每個正確的答案都提供了一個完整的解決方案。請選擇兩個。\\n`\\nq.options = `\\nemployees[:-5]\\n${OPTION_SPLITER}\\nemployees[0:-4]\\n${OPTION_SPLITER}\\nemployees[0:-5]\\n${OPTION_SPLITER}\\nemployees[1:-5]\\n${OPTION_SPLITER}\\nemployees[1:-4]\\n`\\nq.content = ``\\nq.answer = [0, 2]\\nMOCK_1.push(q)\\n\\n// 28\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n將資料類型與類型運算結果對應。\\n\\n回答時,請將適合的資料類型拖動到正確的類型運算結果中。每種資料類型可以使用一次,多次,或不使用。\\n`\\nq.options = `\\nint\\n${OPTION_SPLITER}\\nfloat\\n${OPTION_SPLITER}\\nstr\\n${OPTION_SPLITER}\\nbool\\n`\\nq.content = `\\ntype(+1E10) ${CONTENT_SELECTER}\\ntype(5.0) ${CONTENT_SELECTER}\\ntype(\\\"True\\\") ${CONTENT_SELECTER}\\ntype(False) ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 1, 1: 1, 2: 2, 3: 3}\\nMOCK_1.push(q)\\n\\n// 29\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nNorthwind Traders 公司已聘請你成為在程式開發團隊中創建電子商務應用程式的實習生。\\n\\n你必須編寫一個腳本來要求使用者提供一個值。即使使用者輸入了小數,該值也必須轉換為整數來進行計算。\\n\\n你需要編寫程式碼以滿足要求。\\n\\n你應該使用哪個程式碼片段?\\n`\\nq.options = `\\ntotalItems = str(input(\\\"你想要多少項目?\\\"))\\n${OPTION_SPLITER}\\ntotalItems = input(\\\"你想要多少項目?\\\")\\n${OPTION_SPLITER}\\ntotalItems = int(input(\\\"你想要多少項目?\\\"))\\n${OPTION_SPLITER}\\ntotalItems = float(input(\\\"你想要多少項目?\\\"))\\n`\\nq.content = ``\\nq.answer = [2]\\nMOCK_1.push(q)\\n\\n// 30\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n你正在編寫一個Python程式。該程式收集客戶資料並將其儲存在資料庫中。\\n\\n這個程式處理各式各樣的資料。\\n\\n你需要確保程式能夠正確地處理資料,以便能夠正確地儲存在資料庫中。\\n\\n將資料類型與程式碼片段對應。回答時,請將適當的資料類型從左側的列拖動到右側的程式碼片段。每種資料類型可以使用一次,多次或不使用。\\n`\\nq.options = `\\nbool\\n${OPTION_SPLITER}\\nfloat\\n${OPTION_SPLITER}\\nint\\n${OPTION_SPLITER}\\nstr\\n`\\nq.content = `\\n\\nage = 2 ${CONTENT_SELECTER}\\nminor = False ${CONTENT_SELECTER}\\nname = \\\"Contoso\\\" ${CONTENT_SELECTER}\\nweight = 123.5 ${CONTENT_SELECTER}\\nzip = \\\"81000\\\" ${CONTENT_SELECTER}\\n`\\nq.answer = { 0: 2, 1: 0, 2: 3, 3: 1, 4: 3 }\\nMOCK_1.push(q)\\n\\n// 31\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n你編寫了一個Python程式去執行數學運算。\\n\\n你創建了以下的程式碼:\\n\\na = 11\\nb = 4\\n\\n何者是下列每個數學運算式的結果?回答時,請將適當的運算式從左側的列拖動到右側的結果。每個運算式都可以使用一次,多次或不使用。\\n`\\nq.options = `\\nprint(a / b)\\n${OPTION_SPLITER}\\nprint(a // b)\\n${OPTION_SPLITER}\\nprint(a % b)\\n`\\nq.content = `\\n2 ${CONTENT_SELECTER}\\n3 ${CONTENT_SELECTER}\\n2.75 ${CONTENT_SELECTER}\\n`\\nq.answer = { 0: 1, 1: 2, 2: 0 }\\nMOCK_1.push(q)\\n\\n// 32\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你是Northwind Electric Cars 的實習生。你必須製作一個函數為他們的車輛計算在400公尺跑道上的平均速度。輸出結果必須盡可能精準。\\n\\n要如何完成程式碼?回答時,請在回答區選擇適當的程式碼片段。\\n`\\nq.options = `\\nint\\nstr\\nfloat\\n${OPTION_SPLITER}\\nint\\nstr\\nfloat\\n`\\nq.content = `\\n#速度計算器\\n\\ndistance = ${CONTENT_SELECTER} (input(\\\"請輸入以公尺為單位的行駛距離\\\"))\\n\\ndistance_kms = distance / 1000 #轉換為公里\\n\\ntime = ${CONTENT_SELECTER}(input(\\\"請輸入以秒為單位的經過時間\\\"))\\ntime_hours = time / 3600 #轉換為小時\\n\\nvelocity = distance_kms / time_hours\\nprint(\\\"平均時速是:\\\",velocity,\\\"公里/小時\\\")\\n`\\nq.answer = {0: 2, 1: 2}\\nMOCK_1.push(q)\\n\\n// 33\\nq = {}\\nq.type = TRUE_OR_FALSE\\nq.description = `\\n在學校放假期間,你自願向你的學弟妹們解釋一些基本的程式設計概念。\\n\\n你伊旺在Python中介紹資料類型的概念。你創建以下三個程式碼片段:\\n\\n#程式碼片段1\\nx1 = \\\"20\\\"\\ny1 = 3\\na = x1 * y1\\n\\n#程式碼片段2\\nx2 = 6\\ny2 = 4\\nb = x2 / y2\\n\\n#程式碼片段3\\nx3 = 2.5\\ny3 = 1\\nc = x3 / y3\\n\\n你需要對這些程式碼片段評估。\\n\\n針對下列每個敘述,如果是正確的就選擇Yes,否則請選擇No。\\n\\n注意:每個正確的選擇都可獲得一分\\n`\\nq.options = `\\n執行程式碼片段 1 後,變數a的資料類型為str。\\n${OPTION_SPLITER}\\n執行程式碼片段 2 後,變數b的資料類型為float。\\n${OPTION_SPLITER}\\n執行程式碼片段 3 後,變數c的資料類型為int。\\n`\\nq.content = ``\\nq.answer = {0: 'yes', 1: 'yes', 2: 'no'}\\nMOCK_1.push(q)\\n\\n// 34\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\nTailspin Toys 將現有的應用程式轉換為Python。你正在創建幾位正在園隊中工作的實習生將會使用的文檔。\\n\\n你需要確保算術運算式的程式碼是正確的。\\n\\n按先後順序從頭至尾排列這六類運算的正確順序是什麼?回答時,請將運算清單中的所有運算移動到回答區,並按正確的順序排列它們。\\n`\\nq.options = `\\n正數( + )、負數( - )與反位元( not )\\n${OPTION_SPLITER}\\n括弧\\n${OPTION_SPLITER}\\n乘法和除法( * , / )\\n${OPTION_SPLITER}\\n加法和減法( + , - )\\n${OPTION_SPLITER}\\n指數( ** )\\n${OPTION_SPLITER}\\n且( and )\\n`\\nq.content = `\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n`\\nq.answer = {0: 1, 1: 4, 2: 0, 3: 2, 4: 3, 5: 5}\\nMOCK_1.push(q)\\n\\n// 35\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n計算以下的Python數學運算式:\\n\\n(3 * ( 1 + 2 ) ** 2 - ( 2 ** 2) * 3 )\\n\\n結果為何?\\n\\n`\\nq.options = `\\n3\\n${OPTION_SPLITER}\\n13\\n${OPTION_SPLITER}\\n15\\n${OPTION_SPLITER}\\n69\\n`\\nq.content = ``\\nq.answer = [2]\\nMOCK_1.push(q)\\n\\n// 36\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n你正在編寫Python程式用於計算一個數學公式\\n\\n公式內容為 b 等於 a 乘以 -1,然後再平方,其中 a 是輸入的值,b 是結果。\\n\\n你創建下面的程式碼片段。其中包含的行號只是做為參考。\\n\\n01 a = eval(input(\\\"請輸入一個數字:\\\"))\\n02 b =\\n\\n你需要確保結果是正確的。\\n\\n如何完成 02 行的程式碼?回答時,請將適合的程式碼片段拖動到正確的位置。美個程式碼片段都可以使用一次,多次或不使用。你可能需要在窗格之間拖動分欄的寬度或捲動位置來查看內容。\\n\\n注意:每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\n-\\n${OPTION_SPLITER}\\n(\\n${OPTION_SPLITER}\\n)\\n${OPTION_SPLITER}\\n**\\n${OPTION_SPLITER}\\n**2\\n${OPTION_SPLITER}\\n2\\n${OPTION_SPLITER}\\na\\n`\\nq.content = `\\nb = ${CONTENT_SELECTER}${CONTENT_SELECTER}${CONTENT_SELECTER}${CONTENT_SELECTER}${CONTENT_SELECTER}\\n`\\nq.answer = { 0: 1, 1: 0, 2: 6, 3: 2, 4: 4 }\\nMOCK_1.push(q)\\n\\n// 37\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你正在創建一個Python程式,在服務周年紀念日向員工顯示祝賀資訊。\\n\\n你需要計算服務年資和列印祝賀消息。\\n\\n你已經編寫了以下程式碼。其中包含的行號只是做為參考。\\n\\n01 start = input(\\\"你在公司開始工作是幾歲?\\\")\\n02 end = input(\\\"你今天幾歲?\\\")\\n03 \\n\\n你需要完成這個程式。\\n\\n你應該在 03 行使用哪個程式碼?\\n`\\nq.options = `\\nprint(\\\"恭賀你已經服務了\\\" + int(end - start) + \\\"年!\\\")\\n${OPTION_SPLITER}\\nprint(\\\"恭賀你已經服務了\\\" + str(end - start) + \\\"年!\\\")\\n${OPTION_SPLITER}\\nprint(\\\"恭賀你已經服務了\\\" + (int(end)-int(start))+\\\"年!\\\")\\n${OPTION_SPLITER}\\nprint(\\\"恭賀你已經服務了\\\" + str(int(end)-int(start))+\\\"年!\\\")\\n`\\nq.content = ``\\nq.answer = [3]\\nMOCK_1.push(q)\\n\\n// 38\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你正在編寫的程式碼用來生成的隨機整數,最小值為5,最大值為11。\\n\\n你應該使用哪兩種函數?每個正確的答案都提供了一個完整的解決方案。選擇兩個。\\n`\\nq.options = `\\nrandom.randint(5 , 12)\\n${OPTION_SPLITER}\\nrandom.randrange(5 , 12 , 1)\\n${OPTION_SPLITER}\\nrandom.randint(5 , 11)\\n${OPTION_SPLITER}\\nrandom.randrange(5 , 11 , 1)\\n`\\nq.content = ``\\nq.answer = [1, 2]\\nMOCK_1.push(q)\\n\\n// 39\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你正在編寫使用 sqrt 函數的應用程式。這個程式必須使用名稱 squareRoot 引用該函數。\\n\\n你需要導入該函數。\\n\\n你應該使用哪個程式碼片段?\\n\\n`\\nq.options = `\\nimport math.sqrt as squareRoot\\n${OPTION_SPLITER}\\nimport sqrt from math as squareRoot\\n${OPTION_SPLITER}\\nfrom math.sqrt as squareRoot\\n${OPTION_SPLITER}\\nfrom math import sqrt as squareRoot\\n`\\nq.content = ``\\nq.answer = [3]\\nMOCK_1.push(q)\\n\\n// 40\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你正在創建一個處理數字的函數。該函數具有以下要求:\\n\\n將浮點數傳遞到函數中\\n函數必須取浮點數的絕對值\\n整數後的任何小數必須去除\\n\\n你應該使用哪兩個 Math 函數?每個正確的答案都是解決方案的一部分。選擇兩個。\\n`\\nq.options = `\\nmath.ceil(x)\\n${OPTION_SPLITER}\\nmath.floor(x)\\n${OPTION_SPLITER}\\nmath.fabs(x)\\n${OPTION_SPLITER}\\nmath.fmod(x)\\n${OPTION_SPLITER}\\nmath.frexp(x)\\n`\\nq.content = ``\\nq.answer = [0, 2]\\nMOCK_1.push(q)\\n\\n\\nvar MOCK_2 = []\\n\\nMOCK_2.title = '模擬測驗卷 (2)'\\nMOCK_2.description = ''\\n\\n// 1\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n在這個問題中需要你評估帶底線的文字以確定它是否敘述正確。\\n你編寫以下程式碼:\\nimport sys\\ntry:\\n file_in\\n open (\\\"in.txt\\\", 'r')\\n file_out\\n open(\\\"out.txt\\\", 'w+')\\nexcept IOError:\\n print(' HE', file_name)\\nelse:\\n i = 1\\n for line in file_in:\\n print(line.rstrip())\\n file out.write(\\\"line + str(i) + \\\": + line)\\n`\\nq.options = `\\n不需要改變。\\n${OPTION_SPLITER}\\n程式碼執行,但產生邏輯錯誤。\\n${OPTION_SPLITER}\\n程式碼將產生執行階段錯。\\n${OPTION_SPLITER}\\n程式碼將產生語法錯誤。\\n`\\nq.content = ``\\nq.answer = [0]\\nMOCK_2.push(q)\\n\\n// 2\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nTailspin Toys使用Python來控制它的新玩具:快樂小丑。這個程式有錯誤導致小丑沿著一個無限的国圈跑。\\n你已被雇用來為以下快樂小丑的程式碼除錯。其中包含的行號只是做為參考。\\n01 import math\\n02 # default motion for happy clown\\n03 power = True\\n04 move = 0\\n05 while (power):\\n06 if move == 0:\\n07 turnValue = math.pi / move\\n08 move += 5\\n09 else:\\n10 turnValue = 0\\n11 move = 0\\n在程式碼中存在哪個錯誤?\\n`\\nq.options = `\\n05行導致執行階段錯誤,因為運算式不完整。\\n${OPTION_SPLITER}\\n08行有語法錯誤因為+=是無效語法。\\n${OPTION_SPLITER}\\n05行有語法去錯誤,因為它應該讀取(power\\n${OPTION_SPLITER}\\n07行因為運算時除以零引起的執行階段錯誤。\\n`\\nq.content = ``\\nq.answer = [3]\\nMOCK_2.push(q)\\n\\n// 3\\nq = {}\\nq.type = SELECT\\nq.description = `\\nRelecloud Virtual Learning 公司要求你對一些導致薪資單出現問題的程式碼除錯。他們要求你找到薪資單錯誤的來源。\\n\\n已經宣告了下列變數:\\n\\nemployee_pay = [15000, 120000, 35000, 45000]\\ncount = 0\\nsum = 0\\n\\n在以下的程式碼有二個錯誤:\\n\\nfor index in range (0, len(employee_pay) - 1)):\\n count += 1\\n sum += employee_pay[index]\\naverage = sum // count\\nprint(\\\"薪資總金額是:\\\", sum)\\nprint(\\\"平均薪資是:\\\", average)\\n\\n你應使用哪些程式碼來修復錯誤?回答時,請在回答區中選擇適當的程式碼片段。\\n\\n注意:每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\n(size(employee_pay)):\\n(size(employee_pay) - 1):\\n(len(employee_pay) + 1):\\n(len(employee_pay)):\\n${OPTION_SPLITER}\\nsum/count\\nsum**count\\nsum*count\\n`\\nq.content = `\\nfor index in range ${CONTENT_SELECTER}\\n count += 1\\n sum += employee_pay[index]\\naverage = ${CONTENT_SELECTER}\\nprint(\\\"薪資總金額是:\\\", sum)\\nprint(\\\"平均薪資是:\\\", average)\\n`\\nq.answer = {0: 3, 1: 0}\\nMOCK_2.push(q)\\n\\n// 4\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你正在創建一個接受使用者輸入的程式,這個程式必須將輸入值轉為整數,如果輸入值不能轉為整數,程式碼必須正確處理該錯誤。\\n你要如何完成程式碼,回答時,請在回答區中選擇適當的程式碼片段。\\n`\\nq.options = `\\ntry:\\nelse:\\nexcept:\\nraise:\\nfinally:\\n${OPTION_SPLITER}\\ntry:\\nelse:\\nexcept:\\nraise:\\nfinally:\\n`\\nq.content = `\\nwhile True:\\n ${CONTENT_SELECTER}\\n x = int(input('請輸入一個數字:'))\\n break\\n ${CONTENT_SELECTER} ValueError:\\n print('這不是一個有效的數字,再試一次...')\\n`\\nq.answer = {0: 0, 1: 2}\\nMOCK_2.push(q)\\n\\n// 5\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你編寫一個讀取資料檔案並列印檔案中每 行的函數。\\n你編寫以下的程式碼。其中包含的行號只是做為參考。\\n01 def read_file(file):\\n02 line = None\\n03 if os.path.isfile(file):\\n04 data = open (file, 'r')\\n05 for line in data:\\n06 print (line)\\n\\n當你執行該程式時,你會收到03行上的錯誤。\\n\\n導致錯誤的原因是什麼?\\n`\\nq.options = `\\n你需要導入 os 函數庫。\\n${OPTION_SPLITER}\\npath 物件中不存在isfile方法。\\n${OPTION_SPLITER}\\npath 方法並不存在os物件中。\\n${OPTION_SPLITER}\\nisfile 方法不接受一個參數。\\n`\\nq.content = ``\\nq.answer = [0]\\nMOCK_2.push(q)\\n\\n// 6\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你在一個為AdventureWorks開發遊戲的国隊工作。\\n你需要编寫程式碼來産生一個隨機數來符合以下要求\\n數字是5的倍數。\\n最低的數字是5。\\n*最高的數字是100。\\n兩式碼片段將符合要求?每個正的答案都提供了一個院整的解決方案,選兩個。\\n`\\nq.options = `\\nfrom random import randint\\nprint(randint (0, 20) * 5) \\n${OPTION_SPLITER}\\nfrom random import randint\\nprint(randint (1, 20) * 5)\\n${OPTION_SPLITER}\\nfrom random import randrange\\nprint (randrange(5, 105, 5))\\n${OPTION_SPLITER}\\nfrom random import randrange\\nprint (randrange(0, 100, 5))\\n`\\nq.content = ``\\nq.answer = [1, 2]\\nMOCK_2.push(q)\\n\\n\\n// 7\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你需要去编高程式碼來產生隨機浮點數,最小值是0.0,最大值是1.0。\\n你應該使用哪個語法?\\n`\\nq.options = `\\nrandom.randrange(0.0, 1.0)\\n${OPTION_SPLITER}\\nrandom.randrange()\\n${OPTION_SPLITER}\\nrandom.randint (0, 1)\\n${OPTION_SPLITER}\\nrandom.random()\\n`\\nq.content = ``\\nq.answer = [0]\\nMOCK_2.push(q)\\n\\n// 8\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你正在開發一個線上遊戲的Python應用程式。\\n你需要創建符合以下條件的函數:\\n* ZA update_score\\n* 函數接收當前分數和一個值\\n* 函數將值添加到當前分數\\n* 函數返回新分數\\n你要如何完成程式碼?回答時,請在回答區中選擇適當的程式碼片段。\\n`\\nq.options = `\\nupdate_score\\ndef update_score\\nreturn update_score\\n${OPTION_SPLITER}\\n(current, value):\\n():\\n(current, value)\\n()\\n${OPTION_SPLITER}\\npass current\\nreturn current\\nreturn\\npass\\n`\\n\\nq.content = `\\n${CONTENT_SELECTER} ${CONTENT_SELECTER}\\n current += value\\n ${CONTENT_SELECTER}\\n`\\nq.answer = { 0: 1, 1: 0, 2: 1 }\\nMOCK_2.push(q)\\n\\n// 9\\nq = {}\\nq.type = TRUE_OR_FALSE\\nq.description = `\\n你正在編寫一個函數,用於增加遊戲中的玩家得分。\\n該函數具有以下要求:\\n* 如果沒有為變數 points指定值,則points開始等於1。\\n* 如果變數 bounds是True ,那麼 points 必須倍。\\n\\n你編寫以下程式碼。其中包含的行號只是做為參考。\\n\\n01 def increment_score(score, bonus, points):\\n02 if bonus == True:\\n03 points = points * 2\\n04 score = score + points\\n05 return score\\n06 points = 5\\n07 score = 10\\n08 new_score = increment_score(score, True, points)\\n\\n針對下列每個敘述,如果該敘述是正確的就選擇Yes。否則請選擇No。\\n\\n注意每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\n為了符合要求,必須將01行更改為以下内容:\\ndef increment_score(score, bonus, points = 1):\\n${OPTION_SPLITER}\\n一旦使用預設值定義了任何參數,其右側的任何參數也必須使用默認值進行定義。\\n${OPTION_SPLITER}\\n假如 01行未更改 如果只用兩個參數呼叫函數則第三個參數的值將為 None.\\n${OPTION_SPLITER}\\n03行會修改宣告在06行中變數points 的值。\\n`\\nq.content = ``\\nq.answer = { 0: 'yes', 1: 'yes', 2: 'yes', 3: 'no' }\\nMOCK_2.push(q)\\n\\n// 10\\nq = {}\\nq.type = TRUE_OR_FALSE\\nq.description = `\\n\\n你创建一個函數,透過使用Python計算數字的次方。\\n\\n你需要確保該函有注釋。\\n\\n你建以下程式碼、其中包含的行號只是做為參考。\\n\\n01 # calc_power 計算指數\\n02 # x 是底\\n03 # y 是次方\\n04 # 返回 x 的y次方的值\\n05 def calc_power(x, y):\\n06 comment = \\\"#返回值\\\"\\n07 return x ** y # x的y次方\\n\\n針對下列每個敘述,如果該敘述是正確的就選擇Yes.否則請選擇NO。\\n`\\nq.options = `\\n01到04行在語法檢查時將被忽略。\\n${OPTION_SPLITER}\\n02和03行中的井字符號(#)非必填。\\n${OPTION_SPLITER}\\n06行中的字串將被解釋為注釋。\\n`\\nq.content = ``\\nq.answer = { 0: 'yes', 1: 'no', 2: 'no' }\\nMOCK_2.push(q)\\n\\n// 11\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nWoodgrove Bank 正在將其過去的銀行交易程式碼轉移到 Python\\n\\n你已被雇用來紀錄轉移後的程式碼。\\n\\n哪些文件語法是正確的?\\n`\\nq.options = `\\n'回銀行帳戶的當前餘額\\ndef get balance():\\n return balance\\n${OPTION_SPLITER}\\n//返回銀行帳戶的當前餘額\\ndef get balance():\\n return balance\\n${OPTION_SPLITER}\\ndef get balance():\\n #回第行帳戶的能前除額\\n return balance\\n${OPTION_SPLITER}\\ndef get balance():\\n /*返回家行帳戶的當前餘額*/\\n return balance\\n`\\nq.content = ``\\nq.answer = [2]\\nMOCK_2.push(q)\\n\\n// 12\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你為你的公司開發一個Python 應用程式。\\n你有以下的程式碼。其中包含的行號只是做為參考。\\n01 def test(a, b, c, d):\\n02 value = a + b *c -d\\n03 return value\\n根據程式碼片段中提供的資訊使用下拉式選單選擇每個問題的答案選項。\\n`\\nq.options = `\\na + b\\na * c\\nc - d\\n${OPTION_SPLITER}\\n加(+)\\n減(-)\\n${OPTION_SPLITER}\\n(a + b) * (c - d)\\n(a + (b * c)) - d\\na + ((b * c) - d)\\n`\\nq.content = `\\n運算式的哪個部份將第一個進行計算? ${CONTENT_SELECTER}\\n運算式的哪個部份將第二個進行計算? ${CONTENT_SELECTER}\\n哪個運算式等於題目函數中的運算式? ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 1, 1: 0, 2: 1 }\\nMOCK_2.push(q)\\n\\n// 13\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你為你的學校開了 Python應用程式。\\n\\n一個名為colors的串列包含 200種顏色。你需要分割這個串列,顯示由第二個顏色值開始到最後,間隔的顏色值。\\n\\n你應該使用哪個代碼?\\n`\\nq.options = `\\ncolors[::2]\\n${OPTION_SPLITER}\\ncolors[2:2]\\n${OPTION_SPLITER}\\ncolors[1:2]\\n${OPTION_SPLITER}\\ncolors[1::2]\\n`\\nq.content = ``\\nq.answer = [0]\\nMOCK_2.push(q)\\n\\n// 14\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你正在編寫一個函數,它會返回傳入值的資料類型。你編寫了以下的程式碼。中包含的行號只是做為參考。\\n\\n01 def checkType (value):\\n02 dataType = type(value)\\n03 return dataType\\n04 print (checkType(True))\\n05 print (checkType(1.0))\\n06 print(checkType(1))\\n07 print (checkType (\\\"True\\\"))\\n\\n根據程式碼片段中提供的資訊,使用下拉式選單選擇擇每個問題的答案選項。\\n`\\nq.options = `\\n\u003cclass bool'\u003e\\n\u003cclass'float'\u003e\\n\u003cclass'int\u003e\\n\u003cclass'str'\u003e\\n${OPTION_SPLITER}\\n\u003cclass'bool'\u003e\\n\u003cclass'float'\u003e\\n\u003cclass'int'\u003e\\n\u003cclass'str'\u003e\\n${OPTION_SPLITER}\\n\u003cclass'bool'\u003e\\n\u003cclass'float'\u003e\\n\u003cclass'int'\u003e\\n\u003cclass'str'\u003e\\n${OPTION_SPLITER}\\n\u003cclass'bool'\u003e\\n\u003cclass'float'\u003e\\n\u003cclass'int'\u003e\\n\u003cclass'str'\u003e\\n`\\nq.content = `\\n在04行會印出什麼結果? ${CONTENT_SELECTER}\\n在05行會印出什麼結果? ${CONTENT_SELECTER}\\n在06行會印出什麼結果? ${CONTENT_SELECTER}\\n在07行會印出什麼結果? ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 0, 1: 1, 2: 2, 3: 3}\\nMOCK_2.push(q)\\n\\n// 15\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\nWoodgrove Bank 必須產生一份報表用來顯示所有客戶每天帳戶的平均餘額。報表必須去除餘額的小數部分。\\n您應該使用哪兩個程式碼片段?每個正確的答案都提供了一個完整的解決方案。請選擇兩個。\\n`\\nq.options = `\\naverage_balance = int(total_deposits / number_of_customers)\\n${OPTION_SPLITER}\\naverage_balance = total_deposits ** number_of_customers\\n${OPTION_SPLITER}\\naverage_balance = total_deposits // number_of_customers\\n${OPTION_SPLITER}\\naverage_balance = float(total_deposits // number_of_customers)\\n`\\nq.content = ``\\nq.answer = [0]\\nMOCK_2.push(q)\\n\\n// 16\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你寫了以下的程式碼:\\n\\na = \\\"Testl\\nprint (a)\\nb = a\\na += 'Test2\\\"\\nprint (a)\\nprint (b)\\n\\n根據程式碼片段中提供的資訊,使用下拉式選單選擇每個問題的答案選項。\\n`\\nq.options = `\\nTest1\\nTest1Test2\\nTest2\\n${OPTION_SPLITER}\\nTest1\\nTest1Test2\\nTest2\\n${OPTION_SPLITER}\\nTest1\\nTest1Test2\\nTest2\\n`\\nq.content = `\\n在第一次print後會顯示什麼? ${CONTENT_SELECTER}\\n在第二次print 後會顯示什麼? ${CONTENT_SELECTER}\\n在第三次print 後會顯示什麼? ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 0, 1: 1, 2: 0 }\\nMOCK_2.push(q)\\n\\n\\n// 17\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n你正在開發一個比較數字的Python程式。\\n\\n你需要確保使用的是正確的比較運算子。\\n\\n計算每個運算式並指出正確的結果。回答時,將適當的結果從左側的列拖到右側的運算式中。每個結果可以使用一次,多次,或者不使用。\\n\\n注意:每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\nTrue\\n${OPTION_SPLITER}\\nFalse\\n${OPTION_SPLITER}\\n5\\n${OPTION_SPLITER}\\nNone\\n`\\nq.content = `\\nO or 5 ${CONTENT_SELECTER}\\nbool(0) ${CONTENT_SELECTER}\\nNone is None ${CONTENT_SELECTER}\\n-5 \u003c 0 \u003c 5 ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 2, 1: 1, 2: 0, 3: 0}\\nMOCK_2.push(q)\\n\\n// 18\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你編寫了以下的程式碼:\\n\\nlist_1 = [1, 2]\\nlist 2 = [3, 4]\\nlist_3 = list_1 + list_2\\nlist_4 = list_3 * 3\\nprint(list_4)\\n\\n你執行程式碼。\\n\\n什麼是輸出的值?\\n`\\nq.options = `\\n[[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]]\\n${OPTION_SPLITER}\\n[[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]\\n${OPTION_SPLITER}\\n[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]\\n${OPTION_SPLITER}\\n[3, 6, 9, 12]\\n`\\nq.content = ``\\nq.answer = [2]\\nMOCK_2.push(q)\\n\\n// 19\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你執行以下的程式碼:\\n\\nnumList = [0, 1, 2, 3, 4]\\nprint (5 in numList)\\n\\n什麼是會輸出列印的内容?\\n`\\nq.options = `\\n4\\n${OPTION_SPLITER}\\n5\\n${OPTION_SPLITER}\\nFalse\\n${OPTION_SPLITER}\\nTrue\\n`\\nq.content = ``\\nq.answer = [2]\\nMOCK_2.push(q)\\n\\n// 20\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你正在為一個舞蹈工作室編寫 Python應用程式。\\n\\n工作室希望鼓勵輕人和老年人報名。未成年人和老年人將會獲得10%的折扣。\\n\\n你編寫以下程式碼。其中包含的行號只是做為參考。\\n\\n01 def get_discount (minor, senior):\\n02 discount = 0.1\\n03\\n04 discount = 0\\n05 return discount\\n\\n你必須完程這個程式碼。\\n\\n在 03 行中你將加加入什麼程式碼?\\n`\\nq.options = `\\nif (not minor) or senior:\\n${OPTION_SPLITER}\\nif (not minor) and senior:\\n${OPTION_SPLITER}\\nif not (minor and senior):\\n${OPTION_SPLITER}\\nif not (minor or senior):\\n`\\nq.content = ``\\nq.answer = [0]\\nMOCK_2.push(q)\\n\\n\\n// 21\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n乘你正在編寫一個Python 程式。該程式收集客戶資料並将其儲存在資料庫中。\\n\\n這個程式處理各式各樣的資料。\\n\\n你需要確保程式能夠正確地處理資料,以便能夠正確地儲存在資料庫中。\\n\\n將資料類型與程式碼片段對應。回答時,請將適當的資料類型從左側的列拖動到右側的程式碼片段。每種資料類型可以使用一次,多次,或者不使用。\\n`\\nq.options = `\\nbool\\n${OPTION_SPLITER}\\nfloat\\n${OPTION_SPLITER}\\nint\\n${OPTION_SPLITER}\\nstr\\n`\\nq.content = `\\n${CONTENT_SELECTER} age = 2\\n${CONTENT_SELECTER} minor = False\\n${CONTENT_SELECTER} name = \\\"Contoso\\\"\\n${CONTENT_SELECTER} weight = 123.5\\n${CONTENT_SELECTER} zip = \\\"81000\\\"\\n`\\nq.answer = {0: 2, 1: 0, 2: 3, 3: 1, 4: 3}\\nMOCK_2.push(q)\\n\\n// 22\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你正在編寫一個計算使用者出生年份的程式。該程式會詢問使用者的年齡和當前年份,然後輸出使用者的出生年份。你編寫以下的程式碼,其中的行號只是做為參考。\\n\\n01 age = input(\\\"請輸入你的年龄:\\\")\\n02 year input(\\\"輸入四位数的年份:\\\")\\n03 born = eval(year) - eval(age)\\n04 message = \\\"你出生在” + str(born)\\n05 print(message)\\n\\n你需要確保程式使用適當的資料類型。\\n\\n哪些資料類型被使用了?根據程式碼片段中提供的資訊,使用下拉式選單選擇每個問題的答案選項。\\n\\n注意:每個正確的選擇都可獲得分。\\n`\\nq.options = `\\nint\\nstr\\nfloat\\nbool\\n${OPTION_SPLITER}\\nint\\nstr\\nfloat\\nbool\\n${OPTION_SPLITER}\\nint\\nstr\\nfloat\\nbool\\n`\\nq.content = `\\n在01行中age的資料類型是? ${CONTENT_SELECTER}\\n在03行中born的資料類型是? ${CONTENT_SELECTER}\\n在04行中message的資料類型是? ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 1, 1: 0, 2: 1}\\nMOCK_2.push(q)\\n\\n// 23\\nq = {}\\nq.type = TRUE_OR_FALSE\\nq.description = `\\n你正在創建一個Python程式來比較數字。\\n\\n你創建了以下的程式碼。其中包含的行號只是做為參考。\\n\\n01 num1 = eval(input(\\\"請輸入第一個數字:\\\"))\\n02 num2 = eval(input(\\\"請輸入第二個數字:\\\"))\\n03 if numl1 == num2:\\n04 print (\\\"這二個數字是相等的,\\\")\\n05 if num1 \u003c= num2:\\n06 print(\\\"數字1小於數字2.\\\")\\n07 if num1 \u003e num2:\\n08 print (\\\"數字1 大於 數字2.\\\")\\n09 if num2 = numl:\\n10 print (\\\"這二個數字是相同的,\\\")\\n\\n你需要確保比較的結果是準確的。\\n\\n針對下列每個敘述,如果正確的就選擇Yes,否則請選擇 No。\\n\\n注意:每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\n在04行的語法,只有二個數字的值是相等時才會列印出來。\\n${OPTION_SPLITER}\\n在06行的語法,只有 num1 小於num2時才會列印出來。\\n${OPTION_SPLITER}\\n在08行的語法,只有num1大於 num2時才會列印出來。\\n${OPTION_SPLITER}\\n09行的語法是不正確的比較。\\n`\\nq.content = ``\\nq.answer = {0: 'yes', 1: 'no', 2: 'yes', 3: 'yes'}\\nMOCK_2.push(q)\\n\\n// 24\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n一個同學要求你對以下的程式碼除錯:\\n\\nx = 4\\nwhile x \u003e= 1:\\n if x % 4 == 0:\\n print (\\\"party\\\")\\n elif x - 2 \u003c 0:\\n print(\\\"cake\\\")\\n elif x / 3 == 0:\\n print (\\\"greeting\\\")\\n else:\\n print (\\\"birthday\\\")\\n x = x - 1\\n`\\nq.options = `\\nbirthday\\nparty\\ngreeting\\ncake\\n${OPTION_SPLITER}\\nparty\\ngreeting\\nbirthday\\ncake\\n${OPTION_SPLITER}\\nparty\\nbirthday\\nbirthday\\ncake\\n${OPTION_SPLITER}\\nbirthday\\ngreeting\\nparty\\ncake\\n`\\nq.content = ``\\nq.answer = [2]\\nMOCK_2.push(q)\\n\\n// 25\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你正在編寫一個函數來執行安全的除法。\\n\\n你需要確保將分母和分子傳遞給函數,而且分母不是零。\\n\\n你要如何完成這段程式碼?回答時,在回答區選擇適當的程式碼片段。\\n`\\nq.options = `\\nif numerator is None or denominator is None:\\nif numerator is None and denominator is None:\\nif numerator = None or denominator = None:\\nif numerator = None and denominator = None:\\n${OPTION_SPLITER}\\nelif denoiinator == 0:\\nelif denominator = 0:\\nelif denominator != 0:\\nelif denominator in 0:\\n`\\nq.content = `\\ndef safe_divide (numerator, denominator):\\n ${CONTENT_SELECTER}\\n print(\\\"缺少所需的值.\\\")\\n ${CONTENT_SELECTER}\\n print(\\\"分母為0.\\\")\\n else:\\n return numerator / denominator\\n`\\nq.answer = {0: 0, 1: 0 }\\nMOCK_2.push(q)\\n\\n// 26\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n你有以下串列結構\\nalph = \\\"abcdefghijklmnopqrstuvwxyz\\\"\\n\\n你需要評估執行各種分割操作的結果。\\n\\n將結果與分割操作進行對應。回答時,請將適當的結果從左側的列拖動到右側的分割操作。每個結果可以使用一次,多次,或者不使用。\\n`\\nq.options = `\\nzwtąnkheb\\n${OPTION_SPLITER}\\npmjg\\n${OPTION_SPLITER}\\ndefghijklmno\\n${OPTION_SPLITER}\\nponmlkjihgfe\\n${OPTION_SPLITER}\\ndefghijklmnop\\n${OPTION_SPLITER}\\ndgjm\\n${OPTION_SPLITER}\\nolif\\n${OPTION_SPLITER}\\n\\\"\\\"\\n`\\nq.content = `\\nalph[3:15] ${CONTENT_SELECTER}\\nalph[3:15:3] ${CONTENT_SELECTER}\\nalph[3:15:-3] ${CONTENT_SELECTER}\\nalph[15:3:-3] ${CONTENT_SELECTER}\\nalph[15:3] ${CONTENT_SELECTER}\\nalph[::-3] ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 2, 1: 5, 2: 7, 3: 1, 4: 3, 5: 0}\\nMOCK_2.push(q)\\n\\n\\n// 27\\nq = {}\\nq.type = SELECT\\nq.description = `\\n一個同事寫了一個將姓名輸入到資料庫中的程式。不幸的是,該程式顛倒了每個姓名中的字母。\\n\\n你需要編寫一個Python函數,以正確的順序輸出姓名中的字母。\\n\\n你應該如何完成程式碼?回答時,請在回答區中選擇適當的程式碼片段。\\n\\n注意:每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\nbackwards_name:\\nlen(backwards_name):\\nrange(0,len(backwards_name),-1):\\nrange(len(backwards_name)-1,-1,-1):\\n${OPTION_SPLITER}\\nbackwards_name[index-1]\\nbackwards_name[len(forward_name)-1]\\nbackwards_name[len(backward_name)-len(forward_name)]\\nbackwards_name[index]\\n`\\nq.content = `\\n# 函數會反轉字串中的字元.\\n# 以相反的順序返回新字串,\\ndef reverse_name(backwards_name):\\n forward_name = ''\\n for index in ${CONTENT_SELECTER}\\n forward_name += ${CONTENT_SELECTER}\\n return forward_name\\n\\nprint(reverse_name(\\\"leinad\\\")) # 測試範例\\n`\\nq.answer = {0: 1, 1: 1 }\\nMOCK_2.push(q)\\n\\n// 28\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n如果在清單中找到該字串,則該函數必須須列印一則消息,指示已找到該字电,然後停止逐一查看清單。\\n* 該函數接受個清單和一個字串作為參數。\\n* 該函數必須在清單中搜索該字串。\\n* 如果在清單中找到該字串,則該函數必須列印一則消息,指示已找到該字串,然後停止逐一查看清單。\\n* 如果找不到該字串,則該函數必須列印一則消息,指示在清單中找不到該字串。\\n\\n如果找不到該字串,則該函數必須列印一則消息,指示在清單中找不到該字串。\\n`\\nq.options = `\\ndef search(items, term):\\n${OPTION_SPLITER}\\nfor i in range (len(items)):\\n${OPTION_SPLITER}\\n if items[i] == term:\\n print(\\\"{0} .\\\". format (term))\\n${OPTION_SPLITER}\\n else:\\n print (\\\"{0} E .\\\".format (term))\\n${OPTION_SPLITER}\\n break\\n`\\nq.content = `\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n${CONTENT_SELECTER}\\n`\\nq.answer = {0: 0, 1: 1, 2: 2, 3: 4, 4: 3}\\nMOCK_2.push(q)\\n\\n// 29\\nq = {}\\nq.type = SELECT\\nq.description = `\\nWingtip Toys 公司正在為小學生創健一個互動式乘法表協助程式。\\n您需要完成一個函數計算並顯示從2到 12的所有乘法表組合。\\n你要如何完成這段程式碼?回答時,在回答區選擇適商當的程式碼片段。\\n`\\nq.options = `\\nfor col in range(1):\\nfor col in range(2,13):\\nfor col in range(2,12,1):\\nfor col in range(12):\\n${OPTION_SPLITER}\\nfor row in range(13):\\nfor row in range(2,12,1):\\nfor row in range(2,13):\\nfor row in range(12):\\n`\\nq.content = `\\n# 顯示 2 - 12 乘法表\\ndef times_tables():\\n ${CONTENT_SELECTER}\\n ${CONTENT_SELECTER}\\n end = \\\" \\\")\\n# main\\ntimes_tables()\\n`\\nq.answer = {0: 1, 1: 2}\\nMOCK_2.push(q)\\n\\n//30\\nq = {}\\nq.type = SELECT\\nq.description = `\\nAdventure Works Cydles 銷售公司非常特殊,他們决定給所有不超過15萬美元的員工獎金。下面的公式適用於每個員工基於其基本工資和單位獎金:\\n\\n新工資= 目前工資x 103% + $500獎金\\n\\n您編寫程式碼將員工工資讀入名為salary_1ist 的數。\\n\\n您要如何完成適用於每個合格員工增加工資的程式碼。\\n你要如何完成這段程式碼?回答時,在回答區選擇適當得程式碼片段。\\n\\n注意:每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\nfor index in range(len(salary_list) + 1):\\nfor index in range(len(salary_list)-1):\\nfor index in range(len(salary_list)):\\nfor index in salary_list:\\n${OPTION_SPLITER}\\nexit()\\ncontinue\\nbreak\\nend\\n`\\nq.content = `\\n# 清單中的每個人的工資都根據增加而更新\\n15萬美元以上的員工將不會得到加薪.\\n# Salary list 是由員工資料庫中取得,程式碼不會顯示.\\n#\\n${CONTENT_SELECTER}\\n if salary_list[index] \u003e= 150000:\\n ${CONTENT_SELECTER}\\n salary_list[index] = (salary_list[index] * 1.03) + 500\\n`\\nq.answer = {0: 2, 1: 1}\\nMOCK_2.push(q)\\n\\n\\n// 31\\nq = {}\\nq.type = SELECT\\nq.description = `\\n正在創建一個使用Python計算入場書的函數。入場費根據以下規則計算:\\n\\n* 任何5歳以下的人 = 免費入場\\n* 任何5歲或以上的在學學生= 10美元\\n* 任何5到17歲目沒有就學的人= 20美元\\n* 任何17歳以上目沒有就學的人=50美元\\n\\n你要如何完成這段程式碼?回答時,在回答區選擇適當的程式碼片段。\\n`\\nq.options = `\\nif age \u003e= 5 and school == True:\\nif age \u003e= 5 and age \u003c=17:\\nif age \u003e= 5 and school == False:\\n${OPTION_SPLITER}\\nelif age \u003e= 5 and school == False:\\nelse age \u003e= 5 and school == False:\\nelif age \u003e= 5 and school == True:\\n${OPTION_SPLITER}\\nif age \u003e= 5 and school == True:\\nif age \u003e= and school == False:\\nif age \u003c= 17:\\n`\\nq.content = `\\ndef admission_fee(age, school):\\n rate = 0\\n ${CONTENT_SELECTER}\\n rate = 10\\n ${CONTENT_SELECTER}\\n ${CONTENT_SELECTER}\\n rate = 20\\n else:\\n rate = 50\\n`\\nq.answer = {0: 0, 1: 0, 2: 2}\\nMOCK_2.push(q)\\n\\n// 32\\nq = {}\\nq.type = SELECT\\nq.description = `\\n你為公司開發 Python 應用程式。\\n你要如何完成程式碼讓 print語法是正確的?回答時請在回答區中選擇適當的程式碼片段。\\n`\\nq.options = `\\nif numList == alphalist:\\nif numList == alphalist\\nelse:\\nelse\\n${OPTION_SPLITER}\\nif numList == alphalist:\\nif numList == alphalist\\nelse:\\nelse\\n`\\nq.content = `\\nnumList = [1, 2, 3, 4, 5]\\nalphalist = [\\\"a\\\", \\\"b\\\", \\\"c\\\", \\\"d\\\", \\\"e\\\"]\\n${CONTENT_SELECTER}\\n print(\\\"numList 中的值等於 alphalist\\\")\\n${CONTENT_SELECTER}\\n print(\\\"numList 中的值不等於 alphalist\\\")\\n`\\nq.answer = {0: 0, 1: 2}\\nMOCK_2.push(q)\\n\\n// 33\\nq = {}\\nq.type = SELECT\\nq.description = `\\n正在一個Python 程式,要求使用者輸入一個數字並確定該數字是1位數,2位數還是2位數以上。\\n\\n去寫這個程式。\\n\\n分要如何完成這段程式碼?回答時,在回答區選擇適當的程式碼片段。\\n`\\nq.options = `\\nif num \u003e -10 and num \u003c10:\\nif num \u003e -100 and num \u003c 100:\\n${OPTION_SPLITER}\\nif num \u003e -100 and num \u003c 100:\\nelif num \u003e -100 and num \u003c 100:\\nif num \u003e -10 and num \u003c 10:\\nelif num \u003e -10 and num \u003c10:\\n${OPTION_SPLITER}\\nelse:\\nelif:\\n`\\nq.content = `\\nnum = int(input (\\\"翰入一個1位或2位的數字:\\\"))\\ndigits = \\\"0\\\"\\n\\n${CONTENT_SELECTER}\\n digits = \\\"1\\\"\\n${CONTENT_SELECTER}\\n digits = \\\"2\\\"\\n${CONTENT_SELECTER}\\n digits = \\\"\u003e2\\\"\\n${CONTENT_SELECTER}\\nprint (digits + \\\"位數。\\\")\\n`\\nq.answer = {0: 0, 1: 1, 2: 0}\\nMOCK_2.push(q)\\n\\n// 34\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n\\n01 from random import randint\\n02 target = randint (1, 10)\\n03 chance = 1\\n04 print (\\\"猜一個從1到10的整數,你將有3機會,\\\")\\n05 \\n06 guess = int(input(\\\"猜一個整數:\\\"))\\n07 if guess \u003e target:\\n08 print (\\\"猜的數字太高了\\\")\\n09 elif guess \u003c target:\\n10 print (\\\"猜的數字太低了\\\")\\n11 else:\\n12 print(\\\"猜對了!\\\")\\n13\\n14\\n`\\nq.options = `\\nwhile chance \u003c= 3:\\n${OPTION_SPLITER}\\nwhile chance \u003c 3:\\n${OPTION_SPLITER}\\nbreak\\n${OPTION_SPLITER}\\npass\\n${OPTION_SPLITER}\\nchance += 1\\n${OPTION_SPLITER}\\nwhile chance \u003c 3\\n${OPTION_SPLITER}\\nchance = 2\\n`\\nq.content = `\\n在05行你要使用哪個程式碼片段? ${CONTENT_SELECTER}\\n在13行你要使用哪個程式碼片段? ${CONTENT_SELECTER}\\n在14行你要使用哪個程式碼片段? ${CONTENT_SELECTER}\\n`\\nq.answer = {0: 1, 1: 2, 2: 4}\\nMOCK_2.push(q)\\n\\n// 35\\nq = {}\\nq.type = DRAG_AND_DROP\\nq.description = `\\n你正在編寫一個函數以讀取資料檔案並將結果列印為格式化表格。\\n\\n資料檔案中包含有關水果的資訊。每個記錄都包含水果的名稱、重呈和價格。\\n\\n你需要列印資料,其看起來像下面的範例:\\n\\nOranges 5.6 1.33\\nApples 2.0 0.54\\nGrapes 10.2 10.96\\n\\n具體地說,列印輸出必須符合以下要求:\\n* 水果名稱必須印在10個空格範圍内立並靠左對齊。\\n* 重量必須印在5個腔格範圍内並靠右對齊,小數點後最多一個數位。\\n* 價格必須印在7個空格範圍内並右對濟, 小數點後最多兩位數。\\n\\n你創建了以下的程式碼。其中包含的行號只是做為參考。\\n\\n01 def print_table (file):\\n02 data = open (file, 'r')\\n03 for record in data:\\n04 fields = record.split(\\\",\\\")\\n05\\n\\n你應該如何完成05行的程式碼?回答時,請將適合的程式碼片段拖動到正確的位置。每個程式碼片段都可以使用一次,多次,或者不使用。你可能需要在窗格之間拖動分欄的寬度或捲動位置\\n來查看内容。\\n`\\nq.options = `\\nprint (\\\"\\n${OPTION_SPLITER}\\n{10:0}\\n${OPTION_SPLITER}\\n{5:1f}\\n${OPTION_SPLITER}\\n{7:2f}\\n${OPTION_SPLITER}\\n{2:7.2f}\\n${OPTION_SPLITER}\\n{1:5.1f}\\n${OPTION_SPLITER}\\n{0:10}\\n`\\nq.content = `\\n${CONTENT_SELECTER}${CONTENT_SELECTER}${CONTENT_SELECTER}${CONTENT_SELECTER}\\\". format(fields [0], eval (fields[1]), eval(fields[2])))\\n`\\nq.answer = {0: 0, 1: 6, 2: 5, 3: 4}\\nMOCK_2.push(q)\\n\\n// 36\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你編寫了以下的程式碼:\\nimport datetime\\n\\nd = datetime.datetime(2017, 4, 7)\\nprint('{:%B-%d-%y}').format(d))\\nnum = 1234567.890\\nprint('{:,.4f}'.format(num))\\n`\\nq.options = `\\nApril-07-17\\n1,234,567.8900\\n${OPTION_SPLITER}\\n04-07-2017\\n1,234,567.8900\\n${OPTION_SPLITER}\\n04-07-17\\n1234567.89\\n${OPTION_SPLITER}\\n2017-April-17\\n1,234,567.890\\n`\\nq.content = ``\\nq.answer = [1]\\nMOCK_2.push(q)\\n\\n\\n// 37\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你正在編寫一個Python 程式來自動化庫存。你的第一個任務是讀取庫存交易記錄的檔案。該檔案包含前一天的銷售額,包括物料編號、價格和數量。\\n下面顯示的是檔案中的資料範例:\\n\\n10, 200, 5\\n20, 100, 1\\n\\n程式碼必須符合以下的需求:\\n* 檔案的每行都必須讀取和列印。\\n* 如果遇到空行,則必須忽略。\\n* 在完成所有行的讀取後,必須關閉檔案。\\n\\n你創建了以下的程式碼。其中包含的行號只是做為參考。\\n\\n01 inventory = open(\\\"inventory.txt\\\", 'r')\\n02 eof = False\\n03 while eof == False:\\n04 line = inventory.readline ()\\n05\\n06\\n07 print(line.strip())\\n08 else:\\n09 print(\\\"檔案結束\\\")\\n10 eof = True\\n11 inventory.close()\\n在05 及06行你應該編寫哪些程式碼?\\n`\\nq.options = ` \\n05 if line != '\\\\\\\\n':\\n06 if line != \\\"\\\":\\n${OPTION_SPLITER}\\n05 if line != '':\\n06 if line != \\\"\\\":\\n${OPTION_SPLITER}\\n05 if line != '':\\n06 if line != \\\"\\\\\\\\n\\\":\\n${OPTION_SPLITER}\\n05 if line != '\\\\\\\\n':\\n06 if line != None:\\n`\\nq.content = ``\\nq.answer = [2]\\nMOCK_2.push(q)\\n\\n// 38\\nq = {}\\nq.type = OPTIONS\\nq.description = `\\n你正在創建一個電子商務腳本,它接受來自使用者的輸入,並以逗號分隔的格式輸出資料。\\n\\n你可以編寫以下程式碼來接受輸入:\\n\\nitem = input (\\\"輸入項目名稱:\\\")\\nsales = input(\\\"翰入數量:\\\")\\n\\n輸出必須符合以下要求\\n* 字串必須括在雙號内。\\n* 數字不得用引號或其他字元括起來。\\n* 每個項目必須用逗號隔開。\\n\\n你需要完成程式碼以符合要求。\\n\\n你應該使用哪三個程式碼片段?每個正確的答案都提供了一個完整的解決方案。請選擇三個。\\n`\\nq.options = `\\nprint(item + ',' + sales)\\n${OPTION_SPLITER}\\nprint('\\\"' + item + '\\\",' + sales)\\n${OPTION_SPLITER}\\nprint(\\\"%s\\\",%s' % (item, sales))\\n${OPTION_SPLITER}\\nprint (\\\"{0},{1}\\\".format(item, sales))\\n${OPTION_SPLITER}\\nprint (\\\"{0}\\\",{1}'.format(item, sales))\\n`\\nq.content = ``\\nq.answer = [1, 2, 4]\\nMOCK_2.push(q)\\n\\n// 39\\nq = {}\\nq.type = SELECT\\nq.description = `\\nTailspin Toys 公司正在為員工建立一個籃球場,以提高公司士氣。\\n\\n你正在創建一個Python 程式,員工可以使用它來記錄他們的平均得分。\\n\\n該程式必須允許使用者輸入他們的名字和當前分數。該程式將輸出使用者名和使用者的平均分數。輸出必須符合以下要求\\n* 使用者姓名必須提靠左對齊的。\\n* 如果使用者姓名少於20個字元,則必須在右側添加額外的空間。\\n* 平均分數必須有三個位置在小數點的左邊和一個位置在小數點右邊XXX.X)。\\n\\n你要如何完成程式碼?回答時,請在回答區中選擇適當的程式碼片段。\\n\\n注意每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\n%-20i\\n%-20d\\n%-20f\\n%-20s\\n${OPTION_SPLITER}\\n%1.5s\\n%5.1f\\n%5.1s\\n%1.5f\\n`\\nq.content = `\\nname = input (\\\"你的名字是什麼?\\\")\\nScore = 0\\ncount = 0\\nsum = 6\\nwhile (score != -1):\\n score = int(input (\\\"輸入你的分数:(輸入-1結束程式)\\\"))\\n if score == -1:\\n break\\n sum += core\\n count += 1\\naverage = sum / count\\nprint(\\\"${CONTENT_SELECTER}, 你的平均分数是: ${CONTENT_SELECTER}\\\"%(name, average))\\n`\\nq.answer = { 0: 3, 1: 1 }\\nMOCK_2.push(q)\\n\\n\\n// 40\\nq = {}\\nq.type = SELECT\\nq.description = `\\nNorthwind Electric Cars公司需要使用 Python 程式碼來幫忙更新他們的檔案系統。你必須創建個簡單的檔案操作程式來執行以下操作的\\n* 檢查檔案是否存在。\\n* 如果該檔案存在,則顯示其内容。\\n* 如果該檔案不存在,請使用指定的名稱創建新檔。\\n* 將“清單末尾”一詞追加到檔案最後。\\n\\n您需要完成代碼以滿足要求。\\n\\n你要如何完成這段程式碼?回答時,在回答區選擇適當的程式碼片段。\\n\\n注意:每個正確的選擇都可獲得一分。\\n`\\nq.options = `\\nisfile('myFile.txt'):\\nos.exist('myFile.txt'):\\nos.find('myFile.txt'):\\nos.path.isfile('myFile.txt'):\\n${OPTION_SPLITER}\\noutput('myFile.txt')\\nprint(file.get('myFile.txt'))\\nprint(file.read())\\nprint('myFile.txt')\\n${OPTION_SPLITER}\\nopen('myFile.txt', 'a')\\nopen('myFile.txt\\\", ')\\nopen('myFile.txt', 'w')\\n${OPTION_SPLITER}\\nappend\\nfile.add\\nfile.write\\nwrite\\n`\\nq.content = `\\nimport os\\nif ${CONTENT_SELECTER}\\n file = open (\\\"my File.txt')\\n ${CONTENT_SELECTER}\\n file.close()\\nfile = ${CONTENT_SELECTER}\\n${CONTENT_SELECTER} ('清單末尾')\\nfile.close()\\n`\\nq.answer = {0: 3, 1: 2, 2: 0, 3: 2}\\nMOCK_2.push(q)\\n\\n\\n\\n\\nVue.component('ks-options-exam', {\\n template: `\\n \u003cdiv\u003e\\n \u003ch4\u003e回答區\u003c/h4\u003e\\n \u003cdiv v-for=\\\"option, index in exam.options\\\" class=\\\"p-2 ks-1 alert\\\" :class=\\\"getClass(index)\\\"\u003e\\n \u003cdiv class=\\\"d-inline-block align-top\\\"\u003e\\n \u003cinput type=\\\"checkbox\\\" v-model=\\\"answer[index]\\\"\u003e\\n \u003cspan class=\\\"px-2\\\"\u003e{{AZ[index]}}.\u003c/span\u003e\\n \u003c/div\u003e\\n \u003cpre class=\\\"d-inline-block m-0\\\"\u003e{{option}}\u003c/pre\u003e\\n \u003cspan class=\\\"text-danger\\\" v-if=\\\"show_answer \u0026\u0026 !isCorrect(index)\\\"\u003e錯誤!\u003c/span\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n `,\\n \\n props: ['exam', 'answer', 'show_answer', 'can_edit'],\\n \\n data() {\\n return { AZ: A_TO_Z }\\n },\\n\\n methods: {\\n isCorrect(index) {\\n return !!this.exam.answer[index] === !!this.answer[index]\\n },\\n getClass(index) {\\n if (!this.show_answer) return ''\\n else if (this.isCorrect(index)) return ''\\n else return 'alert-danger'\\n },\\n }\\n})\\n\\nVue.component('ks-true-or-false-exam', {\\n template: `\\n \u003cdiv\u003e\\n \u003ch4\u003e回答區\u003c/h4\u003e\\n \u003cdiv class=\\\"alert\\\" v-for=\\\"option, index in exam.options\\\" :class=\\\"getClass(index)\\\"\u003e\\n \u003cpre class=\\\"d-inline\\\"\u003e{{option}}\u003c/pre\u003e\\n \u003cinput\\n type=\\\"radio\\\"\\n :name=\\\"index\\\"\\n value=\\\"yes\\\"\\n :checked=\\\"exam.answer[index] == 'yes'\\\"\\n v-model=\\\"answer[index]\\\"\\n /\u003e\u003cspan\u003eYES\u003c/span\u003e\\n \u003cinput\\n type=\\\"radio\\\"\\n :name=\\\"index\\\"\\n value=\\\"no\\\"\\n :checked=\\\"!exam.answer[index] == 'no'\\\"\\n v-model=\\\"answer[index]\\\" \\n /\u003e\u003cspan\u003eNO\u003c/span\u003e\\n \u003cspan class=\\\"text-success\\\" v-if=\\\"show_answer \u0026\u0026 isCorrect(index)\\\"\u003e正確!\u003c/span\u003e\\n \u003cspan class=\\\"text-danger\\\" v-if=\\\"show_answer \u0026\u0026 !isCorrect(index)\\\"\u003e錯誤!\u003c/span\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n `,\\n props: ['exam', 'answer', 'show_answer', 'can_edit'],\\n data() {\\n return {\\n AZ: A_TO_Z,\\n }\\n },\\n methods: {\\n isCorrect(idx) {\\n return this.exam.answer[idx] === this.answer[idx]\\n },\\n getClass(index) {\\n if (!this.show_answer) return ''\\n else if (this.isCorrect(index)) return 'alert-success'\\n else return 'alert-danger'\\n },\\n }\\n})\\n\\n\\nVue.component('ks-drag-and-drop-exam', {\\n template: `\\n \u003cdiv class=\\\"cover\\\"\u003e\\n \u003cdiv class=\\\"row px-0\\\"\u003e\\n \u003cdiv class=\\\"col-6 border p-4 h-100 overflow-auto\\\"\u003e\\n \u003ch4\u003e程式碼片段\u003c/h4\u003e\\n \u003ctemplate v-for=\\\"option, idx in exam.options\\\"\u003e\\n \u003ch5\u003e選項{{AZ[idx]}}\u003c/h5\u003e\\n \u003cpre class=\\\"d-inline-block alert alert-secondary p-2 grab\\\"\\n draggable=\\\"true\\\"\\n @dragstart=\\\"dragstart(idx)\\\"\\n \u003e{{option}}\u003c/pre\u003e\\n \u003c/template\u003e\\n \u003c/div\u003e\\n \u003cdiv class=\\\"col-6 border p-4 h-100 overflow-auto\\\"\\\"\u003e\\n \u003ch4\u003e回答區\u003c/h4\u003e\\n \u003cpre\u003e\\n \u003ctemplate v-for=\\\"line in exam.content\\\"\u003e\\n \u003cspan v-if=\\\"typeof line === 'string'\\\"\u003e\\n {{line}}\\n \u003c/span\u003e\\n \u003cspan v-if=\\\"typeof line === 'object'\\\" class=\\\"p-2 alert drag_and_drop_select\\\" :class=\\\"getClass(line.idx)\\\" @drop=\\\"drop(line.idx)\\\" @dragover=\\\"dragover($event)\\\"\u003e\\n \u003cspan class=\\\"d-inline-block\\\"\u003e\\n {{exam.options[answer[line.idx]]}}\\n \u003c/span\u003e\\n \u003c/span\u003e\\n \u003c/template\u003e\\n \u003c/pre\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n `.replace(/ *\\\\n */g, ''),\\n\\n props: ['exam', 'answer', 'show_answer', 'can_edit'],\\n\\n data() {\\n return {\\n AZ: A_TO_Z,\\n draggingIndex: undefined,\\n }\\n },\\n\\n methods: {\\n isCorrect(idx) {\\n return this.exam.answer[idx] === this.answer[idx]\\n },\\n \\n getClass(index) {\\n if (!this.show_answer) return 'alert-secondary'\\n else if (this.isCorrect(index)) return 'alert-success'\\n else return 'alert-danger'\\n },\\n \\n dragover(ev) {\\n ev.preventDefault();\\n },\\n \\n dragstart(index) {\\n this.draggingIndex = index;\\n },\\n \\n drop(optionIndex) {\\n this.$emit('update_answer', [optionIndex, this.draggingIndex])\\n }\\n }\\n})\\n\\nVue.component('ks-select-exam', {\\n template: `\\n \u003cpre\u003e\\n \u003ch4\u003e回答區\u003c/h4\u003e\\n \u003ctemplate v-for=\\\"(line, idx) in exam.content\\\"\u003e\\n \u003cspan v-if=\\\"typeof line === 'string'\\\"\u003e{{line}}\u003c/span\u003e\\n \u003ctemplate v-if=\\\"typeof line === 'object'\\\"\u003e\\n \u003cselect class=\\\"p-1 alert\\\"\\n v-model=\\\"answer[line.idx]\\\"\\n :class=\\\"getClass(line.idx)\\\"\u003e\\n \u003coption v-for=\\\"option, idx in line\\\" :value=\\\"idx\\\" :selected=\\\"idx == line.answer\\\"\u003e\\n {{option}}\\n \u003c/option\u003e\\n \u003c/select\u003e\\n \u003cspan class=\\\"px-2 text-success\\\" v-if=\\\"show_answer \u0026\u0026 isCorrect(line.idx)\\\"\u003e正確!\u003c/span\u003e\\n \u003cspan class=\\\"px-2 text-danger\\\" v-if=\\\"show_answer \u0026\u0026 !isCorrect(line.idx)\\\"\u003e錯誤!\u003c/span\u003e\\n \u003c/template\u003e\\n \\n \u003c/template\u003e\\n \u003c/pre\u003e\\n `.replace(/ *\\\\n */g, ''),\\n\\n props: ['exam', 'answer', 'show_answer', 'can_edit'],\\n\\n methods: {\\n isCorrect(idx) {\\n return this.exam.answer[idx] === this.answer[idx]\\n },\\n getClass(index) {\\n if (!this.show_answer) return 'alert-secondary'\\n else if (this.isCorrect(index)) return 'alert-success'\\n else return 'alert-danger'\\n },\\n }\\n})\\n\\nfunction answerToObj(length, answer) {\\n obj = {}\\n for (let i = 0; i \u003c length; i++) {\\n obj[i] = answer.includes(i)\\n }\\n return obj;\\n}\\n\\nfunction isNotEmptyString(str) {\\n return str != '';\\n}\\n\\nfunction parseExamData(data) {\\n\\n data.forEach((exam, idx) =\u003e {\\n\\n try {\\n\\n if (exam.type === OPTIONS) {\\n exam.options = exam.options.split(OPTION_SPLITER).filter(isNotEmptyString).map(s =\u003e s.trim())\\n exam.answer = answerToObj(exam.options.length, exam.answer)\\n }\\n\\n\\n if (exam.type === TRUE_OR_FALSE) {\\n exam.options = exam.options.split(OPTION_SPLITER).filter(isNotEmptyString).map(s =\u003e s.trim())\\n }\\n\\n if (exam.type === SELECT) {\\n\\n var options = exam.options.split(OPTION_SPLITER).map((options, index) =\u003e {\\n var arr = options.split('\\\\n').filter(isNotEmptyString).map(s =\u003e s.trim())\\n arr.answer = exam.answer[index]\\n return arr\\n })\\n\\n var lines = exam.content.split(CONTENT_SELECTER)\\n var mergeLines = []\\n for (let i = 0; i \u003c lines.length; i++) {\\n mergeLines.push(lines[i])\\n if (options[i]) {\\n options[i].idx = i\\n mergeLines.push(options[i])\\n }\\n }\\n\\n exam.content = mergeLines\\n }\\n\\n if (exam.type === DRAG_AND_DROP) {\\n exam.options = exam.options.split(OPTION_SPLITER).filter(a =\u003e a != '').map(s =\u003e s.trim())\\n\\n var lines = exam.content.split(CONTENT_SELECTER)\\n var mergeLines = []\\n for (let i = 0; i \u003c lines.length; i++) {\\n mergeLines.push(lines[i])\\n\\n if (i \u003c lines.length - 1) {\\n let options = JSON.parse(JSON.stringify(exam.options))\\n options.idx = i;\\n mergeLines.push(options)\\n }\\n }\\n\\n exam.content = mergeLines\\n\\n }\\n\\n exam.description = exam.description.trim()\\n\\n }\\n\\n catch (err) {\\n console.log(err, idx, exam)\\n }\\n })\\n\\n return data;\\n}\\n\\n\\nBASIC_01.type = EXAM_TYPE_BASIC\\nBASIC_02.type = EXAM_TYPE_BASIC\\nBASIC_03.type = EXAM_TYPE_BASIC\\nBASIC_04.type = EXAM_TYPE_BASIC\\nBASIC_05.type = EXAM_TYPE_BASIC\\nBASIC_06.type = EXAM_TYPE_BASIC\\nBASIC_07.type = EXAM_TYPE_BASIC\\nBASIC_08.type = EXAM_TYPE_BASIC\\nBASIC_09.type = EXAM_TYPE_BASIC\\nBASIC_10.type = EXAM_TYPE_BASIC\\nBASIC_11.type = EXAM_TYPE_BASIC\\nBASIC_12.type = EXAM_TYPE_BASIC\\n\\nMOCK_1.type = EXAM_TYPE_MOCK\\nMOCK_2.type = EXAM_TYPE_MOCK\\n\\nvar EXAMS = {\\n BASIC_01,\\n BASIC_02,\\n BASIC_03,\\n BASIC_04,\\n BASIC_05,\\n BASIC_06,\\n BASIC_07,\\n BASIC_08,\\n BASIC_09,\\n BASIC_10,\\n BASIC_11,\\n BASIC_12,\\n MOCK_1,\\n MOCK_2,\\n}\\n\\nfor (let key in EXAMS) {\\n EXAMS[key] = parseExamData(EXAMS[key])\\n EXAMS[key].id = key\\n}\\n\\napp = new Vue({\\n el: '#app',\\n data: {\\n exams: EXAMS,\\n mode: MODE_INIT,\\n current: 0,\\n isShowMenu: true,\\n isShowResult: false,\\n exam: [],\\n answers: {},\\n intervalId: undefined,\\n timer: 0,\\n },\\n methods: {\\n\\n toggleFullscreen() {\\n if ((window.fullScreen) || (window.innerWidth == screen.width \u0026\u0026 window.innerHeight == screen.height)) {\\n if (document.exitFullscreen) {\\n document.exitFullscreen();\\n } else if (document.mozCancelFullScreen) {\\n document.mozCancelFullScreen();\\n } else if (document.webkitExitFullscreen) {\\n document.webkitExitFullscreen();\\n } else if (document.msExitFullscreen) {\\n document.msExitFullscreen();\\n }\\n } else {\\n let el = document.getElementById(\\\"app\\\")\\n if (el.requestFullscreen) {\\n el.requestFullscreen();\\n } else if (el.mozRequestFullScreen) {\\n el.mozRequestFullScreen();\\n } else if (el.webkitRequestFullscreen) {\\n el.webkitRequestFullscreen();\\n } else if (el.msRequestFullscreen) {\\n el.msRequestFullscreen();\\n }\\n }\\n },\\n\\n showMenu () {\\n if(confirm('離開測驗?')) {\\n this.isShowMenu = true\\n clearInterval(this.intervalId)\\n }\\n },\\n\\n showExam (examId) {\\n this.exam = this.exams[examId]\\n this.mode = MODE_EXAM\\n this.isShowMenu = false\\n\\n this.answers = {}\\n for (let idx = 0; idx \u003c this.exam.length; idx++) {\\n var obj = JSON.parse(JSON.stringify(this.exam[idx].answer))\\n for (key in obj) {\\n if (this.exam[idx].type == OPTIONS) obj[key] = false;\\n else if (this.exam[idx].type == TRUE_OR_FALSE) obj[key] = undefined;\\n else obj[key] = -1;\\n }\\n this.$set(this.answers, idx, obj)\\n }\\n\\n this.timer = this.getExamTimeSec(this.exam)\\n this.intervalId = setInterval(() =\u003e {\\n this.timer--\\n if (this.timer \u003c= 0) {\\n this.finish()\\n alert('時間到囉!')\\n }\\n }, 1000)\\n },\\n\\n showReview (examId) {\\n this.exam = this.exams[examId]\\n this.mode = MODE_REVIEW\\n this.isShowMenu = false\\n\\n this.answers = {}\\n for (let idx = 0; idx \u003c this.exam.length; idx++) {\\n var obj = JSON.parse(JSON.stringify(this.exam[idx].answer))\\n this.$set(this.answers, idx, obj)\\n }\\n },\\n\\n updateAnswer(args) {\\n let optionIdx = args[0]\\n let value = args[1]\\n this.$set(this.answers[this.current], optionIdx, value)\\n },\\n\\n prev() {\\n if (this.current \u003e 0) this.current--\\n },\\n\\n next() {\\n if (this.current \u003c this.exam.length - 1) this.current++\\n },\\n\\n finish() {\\n clearInterval(this.intervalId)\\n this.mode = MODE_RESULT\\n this.current = 0\\n this.isShowResult = true\\n\\n var score = Math.floor(100 * (this.countCorrectAnswer() / this.exam.length))\\n\\n localStorage.setItem('exam_' + this.exam.id, score);\\n },\\n\\n isCorrect(index) {\\n return JSON.stringify(this.exam[index].answer || {}) == JSON.stringify(this.answers[index] || {})\\n },\\n\\n typeToText (type) {\\n if (type === OPTIONS) return '選擇題/多選題'\\n if (type === SELECT) return '下拉選單題'\\n if (type === TRUE_OR_FALSE) return '是非題'\\n if (type === DRAG_AND_DROP) return '配對題'\\n },\\n\\n countCorrectAnswer () {\\n return this.exam.filter((e, index) =\u003e {\\n return JSON.stringify(e.answer) === JSON.stringify(this.answers[index])\\n }).length\\n },\\n\\n isExistScoreOf (examId) {\\n return localStorage.getItem('exam_' + examId) != undefined\\n },\\n\\n getExamTimeSec (exam) {\\n return (exam.length + 5) * 60\\n },\\n },\\n\\n computed: {\\n canEdit () {\\n return this.mode !== MODE_RESULT\\n },\\n showAnswer () {\\n return this.mode !== MODE_EXAM\\n },\\n isFirst() {\\n return this.current === 0\\n },\\n isLast() {\\n return this.current === this.exam.length - 1\\n },\\n countdown() {\\n let pass = this.timer\\n let min = Math.floor(pass/60)\\n let sec = pass % 60\\n if (min \u003c 10) min = '0' + min\\n if (sec \u003c 10) sec = '0' + min\\n return min + ':' + sec\\n },\\n countCorrectAnswer () {\\n return this.exam.filter((e, index) =\u003e {\\n return JSON.stringify(e.answer) === JSON.stringify(this.answers[index])\\n }).length\\n },\\n }\\n})\\n\\n\\n\\n\\n\"}","created_at":"2020-09-04T09:46:38.335+08:00","updated_at":"2020-09-04T09:59:34.606+08:00","name":"online_exam","language":"web","screenshot":{"url":"https://cdn6.koding.school/uploads/project/screenshot/187904/f76075098f40ae38930dff74dba278f6.jpg"},"parent_id":3,"plugin":"","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":259,"hashid":"wdksq34r","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":3193588,"file_name":"koding.png","project_id":187904,"asset_id":182920,"created_at":"2020-09-04T09:46:38.341+08:00","updated_at":"2020-09-04T09:46:38.341+08:00"}]
橘蘋學習平台
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
下載 Android APP (APK)
截圖
前往網站頁面
1:1:1
1:1
full
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦