2022年4月13日 星期三

Topic37:Python學習5_等差數列

 

重點0愛課思(AICT)

網址:https://www.youtube.com/watch?v=7qBGo_U5mFI

網站:https://sites.google.com/fhsh.tp.edu.tw/aict/home

「愛課思(AICT)」(即是人工智慧與電算思維,AI Computational Thinking)命名發想取自人工智慧(AI, Artificial Intelligence)與電算思維(CT, Computational Thinking)英語發音的中文諧音,AI的發音像「愛」,C的發音像「課」,Th的發音像「思」,三個字巧妙詮釋應用新興科技工智慧與電算思維打造一個「睿思(RES)課堂」。(RES: Read, Explore, Summarize)。

SIMPLE是Speak In Math PLEase

IT數人iTMATHIST


重點1等差數列

等差數列是指每一項與它的前一項(從第二項起)的差等於同一個常數的一種數列,常用A.P(Arithmetic Progression)表示。

等差數列如:1, 3, 5, 7, 9, …, (2n-1)
等差級數公式:首項a1 = 1,公差d = 2,首項an,第n項為an,前n項和Sn
第n項為:an = a1 + (n - 1) * d
前n項和為:Sn = a1 * n + [n * (n-1) * d] / 2或Sn = [n * (a1 + an)] / 2

題目:求1到10的總和

 ► 參考程式1:sum直接求和

i = range(1, 11) a = sum(i) print(a)

#使用 range()函數
i = range(1, 11, 2) a = sum(i) print(a)
#使用 np.arange()函數
import numpy as np
b = np.arange(1, 11, 2) print(b)

► 說明:

1.range(start, stop, step)函數

  • start: 數列start開始(內定從0開始)。
  • stop: 數列stop結束(不包括stop)。
  • step:間隔,即是數列公差(內定為1)。
2.np.arange(start, stop, step)函數

  • start: 數列start開始(內定從0開始)。
  • stop: 數列stop結束(不包括stop)。
  • step:間隔,即是數列公差(內定為1)。

3.plt.figure()  下打出兩個函數圖形,最後再輸入 plt.show() 就可以一次顯示兩圖。

► 參考程式2:For迴圈求總和

sum = 0 for i in range(1, 11): sum += i print(i)
print(sum)

# 第一種方式:取得 1 ~ 10 的奇數 for i in range(1,11): if i % 2 == 1: print(i) # 第二種方式:將 1 ~ 10 的奇數 存放到 list內 x = [i for i in range (1,11) if i % 2 == 1] print(x) # 取得- 1 ~ 10 偶數 for i in range(1,11): if i % 2 == 0: print(i) # 取得- 1 ~ 10 偶數 存放至 list 內 x = [i for i in range (1,11) if i % 2 == 0] print(x)

► 說明:

1. range()也可以是遞減的,只要將step值設為負數就可以參考:for i in range(0, -5, -1)。
2.如果做成倒數程式碼要改為:for i in range(10, 0, -1)。

► 參考程式3:While迴圈

i = 0 while i < 101: print(i) i = i + 1


while True: print("你好嗎?") reply = input() if reply == "quit": break print('good bye')


num = 1 while i < 6: print(i) i += 1 else: print('I can only count to 5.')


while True: print('Account name:') name = input() if name != 'success': continue print('Password, please:') password = input() if password == 'selflearning': break print('Welcome to Self Learning Success!')


重點2Python的list (列表)

用list 來存放很多變數。

fruit = ["apple", "banana", "cherry"] print(fruit[0])
print(fruit[1])
print(fruit[2])



重點3Python的for迴圈

迴圈就是當我們必須重複做某一些事情的時候,就讓電腦來幫我執行重複的地方。

► for 迴圈基礎用法:
for 跟if 語法規則相同,在for 語句後面要加冒號,並且下一行要空4格,表示是在for 迴圈裡面的程式碼。

► 使用時機:
明確知到要做「幾次」的時候。

► 語法:

for 變數名稱 in 列表: 執行一段敘述

► 參考程式:印出全名單
students = ["Alice", "Bob", "Cindy", "Daisy", "Eve", "Fairy"]
for st in students: print(st, end = ",")



重點4Python的range()類別

要讓迴圈執行與列表長度相對應的次數
range()函數所回傳的並不是一個真正的列表,只是在for 迴圈中,range()函數跟列表的運作模式基本上是一模一樣的。

► 參考程式:要印出0 ~ 5 總共6個數字(方法1)

for i in [0, 1, 2, 3, 4, 5]: print(i, end = ",")

► 參考程式:要印出0 ~ 5 總共6個數字(方法2)

for i in range(6): print(i, end = ",")

range(x, y) 將會回傳一個從x 到y ,但是「不包含」y 的整數數列

► 參考程式:要印出3 ~ 7 (不包含7)

for i in range(3, 7): print(i, end = ",")

range(x, y, z) 將會回傳一個從x 到y ,「不包含」y ,公差為z的數列

► 參考程式:要印出4 ~ 16 (不包含16 ) 公差3的數列

for i in range(4, 16, 3): print(i, end = ",")

► 參考程式:列出0 至10  的列表

a = list(range(11)) print(a)

► 參考程式:說五遍「母親我愛妳」

for i in [1, 2, 3, 4, 5] print("第", i, "母親我愛妳")

「」「」range(x, y, z) 將會回傳一個從x 到y ,「不包含」y ,公差為z的數列

► 參考程式:要印出4 ~ 16 (不包含16 ) 公差3的數列


重點5Python的while迴圈

當我們想要做重複做固定次數的事情適合用for迴圈。那如果想要一直做事直到某個條件才停下來,那就必須用while迴圈了。
while的口語是「只要某某條件成立,就一直做...」。

while 條件運算式: 只要條件成立時就會一直做這個敘述

與for, if  相同,while語句後面要加冒號,並且在while裡的程式碼要空4格。

while 地球還在的一天: 我就會繼續愛著你

► 參考程式4:While迴圈:紅綠燈倒數20,29,...,1的值

n = 20 while n >= 0: print(n) n = n - 1
print("禁止通行")


► 參考程式5:While迴圈:等差級數的公式1+2+3+...+100的值

ans = 0            #用ans變數記錄最後加總的答案
n = 1              #用n變數記錄下一個要加的數字 while n <= 100: ans += n       #ans = ans + n 一直增加數字,直到n到達100 n += 1         #n = n + 1 每次把要加的數字+1
print(ans)         #迴圈結束後,把答案印出來


► 參考程式6:While迴圈:列出0至100的費氏數列

a, b = 0, 1                    #用a, b變數記錄最後加總的答案
n = 100                       #用n變數記錄下一個要加的數字 while a < n: print(a, end = ", ")      
a, b = b, a + b        
print(ans)

► 說明:

列印a值

a值

b值

0

1

1

0,1

1

2

0,1,1

2

3

0,1,1,2

3

5

0,1,1,2,3

5

8

0,1,1,2,3,5

8

13

0,1,1,2,3,5,8

13

21


0,1,1,2,3,5,8,13,21,34,55,89


► 說明:

► 說明:

1. Matplotlib 是

2022年4月5日 星期二

Topic36:Python學習4_函數圖形

 

主題7年級後測

健康促進http://www.openhealth.com.tw/110tp/

主題1二次函數圖形

假設開口向下拋物線方程式:y = -x**2

 ► 參考程式:

import matplotlib.pyplot as plt       #匯入pyplot繪圖簿
import numpy as np                    #計算函數值
x = np.linspace(-10,10,50)           #建立一個-10至10分成50等分的矩陣(預設50)
y = -x*x                    #設定抛物線函數
plt.plot(x,y)                   #畫出x和y的關係圖(資料表)
plt.show()                    #顯示函數圖形

► 說明:

1. Matplotlib 是一個把數據可視覺化的套件,是一個非常實用的工具!
2.plt.show() 是把畫出來的圖形顯示出來。
3.plt.t.title("Quadratic function") 是顯示圖形的標題。
4.plt.xlabel("x 軸") 是X 軸的標籤。
5.plt.ylabel("y 軸") 是Y 軸的標籤。
6.plt.figure()  下打出兩個函數圖形,最後再輸入 plt.show() 就可以一次顯示兩圖。

主題2一次函數圖形

假設直線方程式:y = 2 * x + 3

► 參考程式:

from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(-10, 10, 50)        # 建立一個把 -10 到 10切分成 50 等分的矩陣
y = 2 * x + 3                       # 設定 y 軸的值
plt.plot(x, y)                      # 畫出 x 和 y 的關係
plt.show()                          # 顯示圖片

► 說明:

1. Matplotlib 是一個把數據可視覺化的套件,是一個非常實用的工具!

2.

主題3三角函數圖形

假設直線方程式:y = sin(x )

► 參考程式:

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,9.42,50)    # 建立一個把 -10 到 9.42切分成 50 等分的矩陣
y = np.sin(x)                  # 設定 y 軸的值
plt.plot(x, y)                # 畫出 x 和 y 的關係圖
plt.grid("y = sin(x)")
plt.show()                    # 顯示圖片

► 說明:

1. Matplotlib 是一個把數據可視覺化的套件,是一個非常實用的工具!