◆主題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.除法中求餘數運算子為「%」,求商數運算子為「//」。
► 參考程式3:While迴圈
i = 0
while i < 11:
if i % 2 == 0:
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!')
◆主題2:◆Python的list (列表)
用list 來存放很多變數。
fruit = ["apple", "banana", "cherry"]
print(fruit[0])
print(fruit[1])
print(fruit[2])
◆主題3:◆Python的for迴圈
迴圈就是當我們必須重複做某一些事情的時候,就讓電腦來幫我執行重複的地方。
► for 迴圈基礎用法:
for 跟if 語法規則相同,在for 語句後面要加冒號,並且下一行要空4格,表示是在for 迴圈裡面的程式碼。
► 使用時機:
明確知到要做「幾次」的時候。
► 語法:
► 參考程式:印出全名單
students = ["Alice", "Bob", "Cindy", "Daisy", "Eve", "Fairy"]
for st in students:
print(st, end = ",")
◆主題4:◆Python的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的數列
◆主題5:◆Python的while迴圈
當我們想要做重複做固定次數的事情適合用for迴圈。那如果想要一直做事直到某個條件才停下來,那就必須用while迴圈了。
while的口語是「只要某某條件成立,就一直做...」。
while 條件運算式:
只要條件成立時就會一直做這個敘述
與for, if 相同,while語句後面要加冒號,並且在while裡的程式碼要空4格。
► 參考程式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
► 說明: