3.3 KiB
3.3 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
5e44412c903586ffb414c94c | 算術格式化 | 10 | 462359 | arithmetic-formatter |
--description--
--instructions--
小學生經常把算術題垂直排列,這樣更容易解決。 例如,“235 + 52” 變成:
235
+ 52
-----
創建一個函數,接收一個屬於算術問題的字符串列表,並返回垂直和並排排列的問題。 該函數應該接受可選的第二個參數。 當第二個參數設置爲 True
時,應顯示答案。
示例
函數調用:
arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])
輸出:
32 3801 45 123
+ 698 - 2 + 43 + 49
----- ------ ---- -----
函數調用:
arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True)
輸出:
32 1 9999 523
+ 8 - 3801 + 9999 - 49
---- ------ ------ -----
40 -3800 19998 474
規則
如果提供的問題格式正確,該函數將返回正確的轉換,否則,它將 返回 一個 字符串 來描述對用戶有意義的錯誤。
- 會返回錯誤的情況:
- 如果提供給函數的 問題過多。 限制爲 五個,更多的將返回:
Error: Too many problems.
- 函數可以接受的運算符是 加法 和 減法 。 乘法和除法將返回錯誤。 本要點中未提及的其他運算符將不需要進行測試。 返回的錯誤將是:
Error: Operator must be '+' or '-'.
- 每個數字(操作數)應該只包含數字。 否則,該函數將返回:
Error: Numbers must only contain digits.
- 每個操作數(也就是運算符兩側的數字)的寬度最多爲四位。 否則,返回的錯誤字符串將爲:
Error: Numbers cannot be more than four digits.
- 如果提供給函數的 問題過多。 限制爲 五個,更多的將返回:
- 如果用戶提供了正確格式的問題,返回的轉換將遵循以下規則:
- 運算符和兩個數中最長的一個之間應該有一個空格,運算符與第二個數在同一行,兩個數的順序與所提供的相同(第一個將是頂部的,而第二個將是底部。
- 數字應該右對齊。
- 每個問題之間應該有四個空格。
- 每個問題的底部都應該有破折號。 破折號應該單獨沿着每個問題的整個長度延伸。 (上面的例子展示了這應該是什麼樣子。)
開發
在 arithmetic_arranger.py
中編寫你的代碼。 對於開發,你可以使用 main.py
來測試你的 arithmetic_arranger()
函數。 單擊“運行”按鈕,main.py
將運行。
測試
這個項目的單元測試在 test_module.py
中。 爲了你的方便,我們在 main.py
中從 test_module.py
運行測試。 只要你點擊“運行”按鈕,測試就會自動運行。 或者,你可以通過在控制檯中輸入 pytest
來運行測試。
提交
複製項目的 URL 並在下面提交。
--hints--
它應該正確地格式化算術問題並通過所有測試。
--solutions--
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/