<style>
.reveal, .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { font-family: -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", Helvetica, Arial, PingFangTC-Light, "Microsoft JhengHei", "微軟正黑", sans-serif, "Apple Color Emoji" }
</style>
# 用Python解立方根
## 先想想你怎麼做,再教Python
<br>
請選擇右上角 **分享** <i class="fa fa-share-alt fa-18"></i> 清單裡面的 <i class="fa fa-tv"></i> **簡報模式**,然後點選 **預覽** 來觀看簡報。
###### tags: `資訊科學教學法`
---
## 請問8的立方根是多少?
$$
\sqrt[3]{8} = ?
$$
---
## 請問15的立方根是多少?
$$
\sqrt[3]{15} = ?
$$
---
# 你是怎麼算的?^3^
---
找出最接近15而不超過15的整數立方根
$1 \times 1 \times 1 = 1$
<span><!-- .element: class="fragment highlight-blue" -->$2 \times 2 \times 2 = 8$</span>
$3 \times 3 \times 3 = 27$
---
一次加0.1,加到3次方最接近15而不超過15的數字
$2.1 \times 2.1 \times 2.1 = 09.261$
$2.2 \times 2.2 \times 2.2 = 10.648$
$2.3 \times 2.3 \times 2.3 = 12.167$
<span><!-- .element: class="fragment highlight-blue" -->$2.4 \times 2.4 \times 2.4 = 13.824$</span>
$2.5 \times 2.5 \times 2.5 = 15.625$
---
接著繼續加下去,可以找出愈來愈接近15的立方根。
## 請試著算到小數點後第四位。
---
## 想想看,規則是什麼?
- 從1開始往上加,算出3次方,一直算到接近15但小於15。
- 把剛剛的數字每次加0.1,算出3次方,一直算到接近15但小於15。
- 把剛剛的數字每次加0.01,算出3次方,一直算到接近15但小於15。
...
---
## 用Python來實作
- while命令:一直工作,直到符合我的要求!
:::danger
while (判斷式): ←[要加冒號]
執行程式 ←[要縮排]
:::
- 試試看下列程式,看看執行結果如何?
```python=
count=1
while (count <=20):
print(count)
count=count+1
```
---
## 用 while 指令來解
```python=
i = 0.0
while (i*i*i <15):
i = i + 0.0001
print (i)
```
想想看,這樣寫有什麼缺點嗎?
---
## 可不可以解其他數字?
用input指令來輸入其它數字
```python=
i=float(input("輸入一個正整數"))
j=0.0
while (j*j*j <i):
j = j + 0.0001
print (j)
```
驗算看看,答案正確嗎?
---
## 眼不見為淨
設定print格式,顯示到小數點後第四位就好。
```python=
i=float(input("輸入一個數字"))
j=0.0
while (j*j*j <i):
j = j + 0.0001
print ('%8.5f' %(j))
```
這樣就夠好了嗎?試著輸入大一點的數字看看
---
- 111
- 1111
- 11111
- 12個1呢?
---
- 為什麼要算那麼久?
- 有辦法算快一點嗎?
- 想一下剛剛我們怎麼算的?
- 你會一次加0.0001,慢慢加上去嗎?
- # 請你做看看
---
這裡有一個範例
```python=
i=float(input("輸入一個數字"))
j=0.0
while (j*j*j <i):
j = j + 1
while (j*j*j <i):
j = j + 0.1
while (j*j*j <i):
j = j + 0.01
while (j*j*j <i):
j = j + 0.001
while (j*j*j <i):
j = j + 0.0001
print ('%8.5f' %(j))
```
試看看,答案正確嗎?
---
## 回家作業
- 想想看,問題出在哪裡?
- 請修改出正確的程式
{"metaMigratedAt":"2023-06-14T23:18:23.761Z","metaMigratedFrom":"Content","title":"用Python解立方根","breaks":true,"contributors":"[{\"id\":\"97f277c6-1b8d-46ee-a337-5fe0e6cfd972\",\"add\":2565,\"del\":501}]"}