從前有一位聰明的僕人,他救了王子的性命。 國王承諾,只要僕人想得出來,他都會賞賜。 僕人知道國王熱愛西洋棋,便告訴國王,他想要一些麥粒。 在棋盤的第一格放一粒麥子,之後每一格的麥粒數量都是前一格的兩倍。
計算棋盤上的麥粒數量。
棋盤有 64 個格子。 第 1 格有 1 粒麥子,第 2 格有 2 粒麥子,第 3 格有 4 粒麥子,依此類推,每格加倍。
撰寫程式碼來計算:
有時候你會需要引發例外。這麼做的時候,一定要附上有意義的錯誤訊息,指出錯誤的來源。這能讓你的程式碼更好讀,對除錯也有很大的幫助。如果你知道錯誤來源會是某個特定的型別,可以選擇引發其中一種內建錯誤型別,但還是要附上有意義的訊息。
這個練習要求你在輸入的格子超出範圍時,使用 raise 敘述「拋出」ValueError。你必須既 raise 這個 exception,又附上訊息,測試才會通過。
若要引發帶有訊息的 ValueError,請把訊息寫成 exception 型別的引數:
# when the square value is not in the acceptable range
raise ValueError("square must be between 1 and 64")