0.4. Zero-Judge網站介紹與使用
在課程簡介中所提到的授課目的如下,
授課目的
- 主要目的為:幫助無程式設計經驗者,透過大量練習,來提升基礎程式開發與資料分析能力。
其中,「大量練習」是利用做線上測驗題目來練習在每週課程中所教授的Python程式語法,同時練習「如何」設計與撰寫Python程式來決解題目所提出的問題,並且討論在題目過程中所遇到的相關問題。
Zero-Judge網站介紹
首先,在Zero-Judge網站上建立帳號並且登入,左右上角的「解題統計」中,可以了解目前的解題狀況,例如:通過、未通過或未做多少題目等。在此課程中,我們主要練習「基礎題庫」及少量「競賽題庫」中的題目。此外,對於有程式經驗者的需求,則會另行選擇合適的題目來練習所需要加強的部份。
測驗題目介紹
在Zero-Judge網站的每一個題目中都會有固定的格式,如下:
- 題目名稱
- 題目說明:會有一段文字內容來說明該題目要解決的問題是什麼。
- 輸入及輸出說明:說明輸入及輸出的相關內容或限制。
- 輸入及輸出範例:對應題目內容及說明的輸入及輸出範例。
撰寫第一個Zero-Judge程式:「a001: 哈囉」
在撰寫Zero-Judge題目的程式時,可以使用Zero-Judge提供的標準解題範例來處理輸入的資料,往後也可以修改此範例程式來符合其他題目的輸入資料的格式需求。
import sys
for s in sys.stdin:
print('hello, '+s)
先在Repl.it網站上測試程式
在要提交解答程式之前,我們也可以先在Repl.it網站上測試目前所寫的解答程式,先了解我們的解答程式是否可以正確地輸出題目所需要的答案及格式。
先按下「Run」來執行程式。再複製題目所提供的輸入範例,並且在Repl.it網站貼上該輸入範例來測試我們的解答程式。
在貼上輸入範例之後,按下「Enter」來得到執行結果。
提交解答程式
當撰寫完初步的解答程式之後,可以先行使用「測試執行」來測試程式的輸出結果是否符合輸出範例。
當解答程式通過測試時會有下列畫面表示。
正式提交解答程式!!!
查看評分結果。
錯誤訊息
下列是在測式或正式提交解答程式之後,會從Zero-Judge得到的解誤訊息,可以藉此訊息來修改解答程式。[Link]
- AC: Accept 即表示通過。
- NA: Not Accept 表示在多個測資點的情況下,有部分測資點無法通過。
- WA: Wrong Answer 表示答案錯誤, 請仔細比對,務必符合題目要求。
- TLE: Time Limit Exceed 表示執行超過時間限制。
- MLE: Memory Limit Exceed 表示程序超過記憶體限制。
- OLE: Output Limit Exceed 表示程序輸出超過限制。
- RE: Runtime Error 表示執行時錯誤,通常為記憶體配置錯誤 如:使用了超過陣列大小的位置。
- RF: Restricted Function 表示使用了被禁止使用的函式,並在錯誤訊息中指明使用了什麼不合法的函式。。
- CE: Compile Error 表示編譯錯誤。
- SE: System Error 包含 Compile, Runtime 等未定義的錯誤均屬於 System Error 。
不斷修正解答程式,直到通過為止吧!
有的時候,我們可能會第一次提交解答程式時就順利通過了!但是,有更多的時候,我們會不斷地修正解答程式,不論是解答程式輸出錯誤的結果或格式、只有通過部份測試資料或超過時間限制等,這在學習程式設計或練習題目時,都是非常正常的情況。