chore(i18n,learn): processed translations (#45504)

This commit is contained in:
camperbot
2022-03-23 19:52:04 +05:30
committed by GitHub
parent dbb7f309a7
commit 3add6077ad
162 changed files with 2383 additions and 826 deletions

View File

@ -8,21 +8,78 @@ dashedName: arithmetic-formatter
# --description--
創建一個函數,該函數接收屬一個字符串列表,每個字符串代表一個算數問題,並返回垂直並排排列的問題
你將[使用我們的 Replit 入門代碼來完成這個項目](https://replit.com/github/freeCodeCamp/boilerplate-arithmetic-formatter)
你可以[在 Replit 上查看整個項目的具體描述和初始代碼](https://replit.com/github/freeCodeCamp/boilerplate-arithmetic-formatter)。
# --instructions--
訪問此鏈接後fork 這個項目。 當你根據 “README.md” 中的說明完成了項目,請在下方提交你的項目鏈接。
小學生經常把算術題垂直排列,這樣更容易解決。 例如“235 + 52” 變成:
我們仍在開發 Python 課程的交互式教學部分。 目前freeCodeCamp.org YouTube 頻道上的一些視頻會教授你這個項目需要的所有技能。
```py
235
+ 52
-----
```
<ul> <li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Python for Everybody 視頻課程</a>14 小時)
</li>
<li>
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>學習 Python 視頻課程</a>2 小時)
</li>
<ul>
創建一個函數,接收一個屬於算術問題的字符串列表,並返回垂直和並排排列的問題。 該函數應該接受可選的第二個參數。 當第二個參數設置爲 `True` 時,應顯示答案。
## 示例
函數調用:
```py
arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])
```
輸出:
```py
32 3801 45 123
+ 698 - 2 + 43 + 49
----- ------ ---- -----
```
函數調用:
```py
arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True)
```
輸出:
```py
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--

View File

@ -8,22 +8,80 @@ dashedName: budget-app
# --description--
創建一個 Category類別 類,該類可用於創建不同的預算類別
你將[使用我們的 Replit 入門代碼來完成這個項目](https://replit.com/github/freeCodeCamp/boilerplate-budget-app)
你可以[在 Replit 上查看整個項目的具體描述和初始代碼](https://replit.com/github/freeCodeCamp/boilerplate-budget-app)。
# --instructions--
訪問此鏈接後fork 這個項目。 當你根據 “README.md” 中的說明完成了項目,請在下方提交你的項目鏈接。
完成 `budget.py` 中的 `Category` 類。 它應該能夠根據不同的預算類別實例化對象,例如 *食物**服裝**娛樂* 。 創建對象時,它們以類別的名稱傳遞。 該類應該有一個名爲 `ledger` 的實例變量,它是一個列表。 該類還應包含以下方法:
我們仍在開發 Python 課程的交互式教學部分。 目前freeCodeCamp.org YouTube 頻道上的一些視頻將會教授你這個項目需要的所有技能
- 接受金額和描述的 `deposit` 方法。 如果沒有給出描述,它應該默認爲一個空字符串。 該方法應以 `{"amount": amount, "description": description}` 的形式將對象附加到賬本列表
- `withdraw` 方法類似於 `deposit` 方法,但傳入的金額應作爲負數存儲在分類帳中。 如果沒有足夠的資金,則不應向分類帳添加任何內容。 如果取款發生,此方法應返回 `True`,否則返回 `False`
- `get_balance` 方法,根據發生的存款和取款返回預算類別的當前餘額。
- 一個 `transfer` 方法,它接受一個金額和另一個預算類別作爲參數。 該方法應添加帶有金額和描述“Transfer to [目標預算類別]”的提款。 然後該方法應將存款添加到其他預算類別其金額和描述爲“Transfer from [來源預算類別]”。 如果沒有足夠的資金,則不應向任一分類帳添加任何內容。 如果轉賬發生,此方法應返回 `True`,否則返回 `False`
- 接受金額作爲參數的 `check_funds` 方法。 如果金額大於預算類別的餘額,則返回 `False`,否則返回 `True``withdraw` 方法和 `transfer` 方法都應該使用此方法。
<ul>
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Python for Everybody 視頻課程</a>14 小時)
</li>
<li>
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Learn Python 視頻課程</a>2 小時)
</li>
</ul>
打印預算對象時,它應顯示:
- 30 個字符的標題行,類別名稱居中在一行 `*` 字符中。
- 分類帳中的項目列表。 每行應顯示描述和金額。 應顯示描述的前 23 個字符,然後是金額。 金額應右對齊,包含兩位小數,最多顯示 7 個字符。
- 一行顯示類別總數。
下面是一個輸出示例:
```bash
*************Food*************
initial deposit 1000.00
groceries -10.15
restaurant and more foo -15.89
Transfer to Clothing -50.00
Total: 923.96
```
除了 `Category` 類之外,創建一個名爲 `create_spend_chart` 的函數(在類之外),它將類別列表作爲參數。 它應該返回一個作爲條形圖的字符串。
該圖表應顯示在傳遞給函數的每個類別中花費的百分比。 花費的百分比應該只計算取款而不是存款。 圖表左側應該是標籤 0 - 100。 條形圖中的“條”應由“o”字符組成。 每個條形的高度應四捨五入到最接近的 10。 條形圖下面的水平線應該超過最後一個條形圖再多兩個空格。 每個類別名稱應垂直寫在欄下方。 頂部應該有一個標題上面寫着“Percentage spent by category”。
此功能將使用最多四個類別進行測試。
仔細查看下面的示例輸出,並確保輸出的間距與示例完全匹配。
```bash
Percentage spent by category
100|
90|
80|
70|
60| o
50| o
40| o
30| o
20| o o
10| o o o
0| o o o
----------
F C A
o l u
o o t
d t o
h
i
n
g
```
此項目的單元測試在 `test_module.py` 中。
## 開發
`budget.py` 中編寫你的代碼。 對於開發,你可以使用 `main.py` 來測試你的 `Category` 類。 單擊“運行”按鈕,`main.py` 將運行。
## 測試
爲了你的方便,我們將測試從 `test_module.py` 導入到 `main.py`。 只要你點擊“運行”按鈕,測試就會自動運行。
## 提交
複製項目的 URL 並將其提交給 freeCodeCamp。
# --hints--

View File

@ -8,26 +8,94 @@ dashedName: polygon-area-calculator
# --description--
你將通過使用我們的[Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-polygon-area-calculator)來完成本項目。
# --instructions--
在這個項目中,你將使用面向對象的編程來創建 Rectangle矩形 類和 Square正方形 類。 Square 類應該是 Rectangle 的子類,並繼承方法和屬性。
你可以[在 Replit 上查看整個項目的具體描述和初始代碼](https://replit.com/github/freeCodeCamp/boilerplate-polygon-area-calculator)。
## Rectangle 類
到達此鏈接後fork 這個項目。 當你根據 “README.md” 中的說明完成了項目,請在下方提交你的項目鏈接。
創建 Rectangle 對象時,應使用 `width``height` 屬性對其進行初始化。 該類還應包含以下方法:
Python 課程的交互式教學部分仍在開發當中。 目前freeCodeCamp.org YouTube 頻道上的一些視頻將會教授你這個項目需要的所有技能。
- `set_width`
- `set_height`
- `get_area`:返回面積(`width * height`
- `get_perimeter`:返回周長(`2 * width + 2 * height`
- `get_diagonal`:返回對角線 (`(width ** 2 + height ** 2) ** .5`)
- `get_picture`:返回一個字符串,該字符串使用包含“\*”的行來表示形狀。 行數應等於高度,每行中“\*”的數量應等於寬度。 每行末尾應該有一個新行 (`\n`)。 如果寬度或高度大於 50則應返回字符串“Too big for picture.”。
- `get_amount_inside`:以另一個形狀(正方形或矩形)作爲參數。 返回傳入的形狀可以裝進該形狀的次數(沒有旋轉)。 例如,一個寬爲 4高爲 8 的矩形可以放入兩個邊長爲 4 的正方形。
<ul>
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Python for Everybody 視頻課程</a>14 小時)
</li>
<li>
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Learn Python 視頻課程</a>2 小時)
</li>
</ul>
另外,如果一個 Rectangle 實例被表示爲一個字符串,它應該看起來像: `Rectangle(width=5, height=10)`
## Square 類
Square 類應該是 Rectangle 的子類。 創建 Square 對象時,傳入單邊長度。 `__init__` 方法應該在 Rectangle 類的 `width``height` 屬性中存儲邊長。
Square 類應該能夠訪問 Rectangle 類方法,但還應該包含一個 `set_side` 方法。 如果 Square 的實例表示爲字符串,則它應該如下所示:`Square(side=9)`
此外Square 類的 `set_width``set_height` 方法應該設置寬度和高度。
## 使用示例
```py
rect = shape_calculator.Rectangle(10, 5)
print(rect.get_area())
rect.set_height(3)
print(rect.get_perimeter())
print(rect)
print(rect.get_picture())
sq = shape_calculator.Square(9)
print(sq.get_area())
sq.set_side(4)
print(sq.get_diagonal())
print(sq)
print(sq.get_picture())
rect.set_height(8)
rect.set_width(16)
print(rect.get_amount_inside(sq))
```
該代碼應該返回:
```bash
50
26
Rectangle(width=10, height=3)
**********
**********
**********
81
5.656854249492381
Square(side=4)
****
****
****
****
8
```
此項目的單元測試在 `test_module.py` 中。
## 開發
`shape_calculator.py` 中編寫你的代碼。 對於開發,你可以使用 `main.py` 來測試你的 `shape_calculator()` 函數。 單擊“運行”按鈕,`main.py` 將運行。
## 測試
爲了你的方便,我們將測試從 `test_module.py` 導入到 `main.py`。 只要你點擊“運行”按鈕,測試就會自動運行。
## 提交
複製項目的 URL 並將其提交給 freeCodeCamp。
# --hints--
應該創建一個 Rectangle 類和 Square 類並通過所有測試。
應該創建一個 Rectangle 類和一個 Square 類並通過所有測試。
```js

View File

@ -8,24 +8,68 @@ dashedName: probability-calculator
# --description--
寫一個程序來確定從帽子中隨機拿取特定球的大致概率
你將通過使用我們的[Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-probability-calculator)來完成本項目
你可以在 [Replit](https://replit.com/github/freeCodeCamp/boilerplate-probability-calculator) 上查看整個項目的具體描述和初始代碼。 訪問此鏈接後fork 這個項目。 當你根據 “README.md” 中的說明完成了項目,請在下方提交你的項目鏈接。
# --instructions--
我們仍在開發 Python 課程的交互式教學部分。 目前freeCodeCamp.org YouTube 頻道上的一些視頻將會教授你這個項目需要的所有技能
假設有一頂帽子,裏面有 5 個藍球、4 個紅球和 2 個綠球。 隨機抽取的 4 個球中至少包含 1 個紅球和 2 個綠球的概率是多少? 雖然可以使用高等數學來計算概率,但更簡單的方法是編寫一個程序來執行大量實驗來估計近似概率
<ul>
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Python for Everybody 視頻課程</a>14 小時)
</li>
<li>
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Learn Python 視頻課程</a>2 小時)
</li>
</ul>
對於這個項目,你將編寫一個程序來確定從帽子中隨機抽取某些球的大致概率。
首先,在`prob_calculator.py` 中創建一個`Hat` 類。 該類應該採用可變數量的參數來指定帽子中每種顏色的球數。 例如,可以通過以下任何一種方式創建類對象:
```py
hat1 = Hat(yellow=3, blue=2, green=6)
hat2 = Hat(red=5, orange=4)
hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9)
```
一頂帽子總是至少有一個球。 創建時傳遞給 hat 對象的參數應轉換爲 `contents` 實例變量。 `contents` 應該是一個字符串列表,其中包含帽子中每個球的一個項目。 列表中的每一項都應該是一個顏色名稱,代表該顏色的單個球。 例如,如果你的帽子是 `{"red": 2, "blue": 1}``contents` 應該是 `["red", "red", "blue"]`
`Hat` 類應該有一個 `draw` 方法,該方法接受一個參數,該參數指示要從帽子中抽取的球數。 此方法應該從 `contents` 中隨機刪除球,並將這些球作爲字符串列表返回。 在抽取過程中球不應回到帽子中,類似於沒有放回的黑盒實驗。 如果要抽的球數量超過可用數量,則返回所有球。
接下來,在 `prob_calculator.py`(不是在 `Hat` 類中)創建一個 `experiment` 函數。 此函數應接受以下參數:
- `hat`:一個包含球的帽子對象,應該在函數內複製。
- `expected_balls`:一個對象,指示嘗試從帽子中抽取的確切球組以進行實驗。 例如,要確定從帽子中抽取 2 個藍球和 1 個紅球的概率,將 `expected_balls` 設置爲 `{"blue":2, "red":1}`
- `num_balls_drawn`:每次實驗中從帽子中抽出的球數。
- `num_experiments`:要執行的實驗數量。 (進行的實驗越多,近似概率就越準確。)
`experiment` 函數應該返回一個概率。
例如,假設你想確定當你從一個包含 6 個黑球、4 個紅球和 3 個綠球的帽子中抽出 5 個球時,至少得到 2 個紅球和 1 個綠球的概率。 爲此,我們進行 `N` 次實驗,記錄其中我們至少得到 2 個紅球和 1 個綠球的次數 `M`,並估計概率爲`M/N`。 每個實驗都包括從一頂裝有指定球的帽子開始,抽取一些球,然後檢查我們是否得到了我們想要得到的球。
以下是基於上面的示例調用 `experiment` 函數的方法,其中包含 2000 個實驗:
```py
hat = Hat(black=6, red=4, green=3)
probability = experiment(hat=hat,
expected_balls={"red":2,"green":1},
num_balls_drawn=5,
num_experiments=2000)
```
由於這是基於隨機抽取的,因此每次運行代碼時概率會略有不同。
*提示:考慮使用已經在 `prob_calculator.py` 頂部導入的模塊。 不要在 `prob_calculator.py` 中初始化隨機種子。*
## 開發
`prob_calculator.py` 中編寫你的代碼。 對於開發,你可以使用 `main.py` 來測試你的代碼。 單擊“運行”按鈕,`main.py` 將運行。
樣板文件包括 `copy``random` 模塊的 `import` 語句。 考慮在你的項目中使用它們。
## 測試
這個項目的單元測試在 `test_module.py` 中。 爲了你的方便,我們將測試從 `test_module.py` 導入到 `main.py`。 只要你點擊“運行”按鈕,測試就會自動運行。
## 提交
複製項目的 URL 並將其提交給 freeCodeCamp。
# --hints--
它應該能正確地計算概率並通過所有測試。
它應該能正確地計算概率並通過所有測試。
```js

View File

@ -8,24 +8,61 @@ dashedName: time-calculator
# --description--
編寫一個名爲 “add_time” 的函數,該函數可以將一段時間添加到一個開始時間中,並返回結果
你將通過使用我們的[Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-time-calculator)來完成本項目
你可以 [在 Replit 上查看整個項目的具體描述和初始代碼](https://replit.com/github/freeCodeCamp/boilerplate-time-calculator)。 訪問此鏈接後fork 這個項目。 當你根據 “README.md” 中的說明完成了項目,請在下方提交你的項目鏈接。
# --instructions--
我們仍在開發 Python 課程的交互式教學部分。 目前freeCodeCamp.org YouTube 頻道上的一些視頻將會教授你這個項目需要的所有技能。
編寫一個名爲 `add_time` 的函數,它接受兩個必需參數和一個可選參數:
<ul>
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Python for Everybody 視頻課程</a>14 小時)
</li>
<li>
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Learn Python 視頻課程</a>2 小時)
</li>
</ul>
- 12 小時制的開始時間(以 AM 或 PM 結束)
- 指示小時數和分鐘數的持續時間
- (可選)一週的開始日期,不區分大小寫
該函數應將持續時間添加到開始時間並返回結果。
如果結果是第二天,它應該在時間之後顯示 `(next day)`。 如果結果將超過一天以後,它應該在時間後面顯示 `(n days later)`,其中 "n "是之後的天數。
如果給函數提供了可選的開始日期的星期參數,則輸出應顯示結果的星期幾。 輸出中的星期幾應出現在時間之後和天數之前。
以下是函數應處理的不同情況的一些示例。 請注意結果的間距和標點符號。
```py
add_time("3:00 PM", "3:10")
# Returns: 6:10 PM
add_time("11:30 AM", "2:32", "Monday")
# Returns: 2:02 PM, Monday
add_time("11:43 AM", "00:20")
# Returns: 12:03 PM
add_time("10:10 PM", "3:30")
# Returns: 1:40 AM (next day)
add_time("11:43 PM", "24:20", "tueSday")
# Returns: 12:03 AM, Thursday (2 days later)
add_time("6:30 PM", "205:12")
# Returns: 7:42 AM (9 days later)
```
不要導入任何 Python 庫。 假設開始時間是有效時間。 持續時間中的分鐘將是小於 60 的整數,但小時可以是任何整數。
## 開發
`time_calculator.py` 中編寫你的代碼。 對於開發,你可以使用 `main.py` 來測試你的 `time_calculator()` 函數。 單擊“運行”按鈕,`main.py` 將運行。
## 測試
這個項目的單元測試在 `test_module.py` 中。 爲了你的方便,我們將測試從 `test_module.py` 導入到 `main.py`。 只要你點擊“運行”按鈕,測試就會自動運行。
## 提交
複製項目的 URL 並將其提交給 freeCodeCamp。
# --hints--
它應該能正確地添加時間並通過所有測試。
它應該能正確地添加時間並通過所有測試。
```js