by 洪翠憶
PYTHON
課程內容
PYTHON
課堂規則
PYTHON
講師簡介
PYTHON
中山女高資訊研究社(楓資)
程式教學學長
Discord:KonoDioDa
FB/IG/Line/Google:洪翠憶
程式語言:C++、Python
興趣:看動漫、玩手機、寫程式
請多指教!
大家給我的話~(截至今日6:30pm)
PYTHON
大家給我的話~(截至2021/10/25)
PYTHON
PYTHON
Python的特色
PYTHON
雖然大家都知道這些
不過不講好像太不負責
還是講一下好了
Python註解方式
PYTHON
#單行註解
"""
多行註解
('或"都可以)
"""
Python編輯器
PYTHON
幫助精進Python的網頁
PYTHON
接下來這個學期
一起加油吧!
PYTHON
PYTHON
PYTHON
數值型態
PYTHON
文字型態
PYTHON
容器型態
PYTHON
映射型態
PYTHON
集合型態
PYTHON
布林型態
PYTHON
位元型態
PYTHON
PYTHON
PYTHON
"和"與"或"的比較
PYTHON
PYTHON
輸出
PYTHON
print(*objs, sep=' ', end='\n', file=sys.stdout, flush=False)
輸入
PYTHON
input(*prompt)
變數
PYTHON
PYTHON
if條件式
PYTHON
if 條件式:
陳述句
陳述句
elif 條件式:
陳述句
陳述句
else:
陳述句
陳述句
其他的寫法
PYTHON
變數名稱 = (條件) and True的回傳值 or False的回傳值
變數名稱 = [False的回傳值, True的回傳值][條件]
變數名稱 = True的回傳值 if 條件 else False的回傳值
巢狀用法
PYTHON
PYTHON
while迴圈
PYTHON
while 條件:
陳述句
for迴圈
PYTHON
for 變數 in 序列:
陳述句
break vs continue
PYTHON
迴圈的else
PYTHON
PYTHON
宣告函式
PYTHON
def 函式名稱(參數1, 參數2, ...):
陳述句
陳述句
呼叫函式
PYTHON
return跟pass的用法
PYTHON
函數的參數
PYTHON
def arbitrary_argument(*參數名稱):
pass #不受宣告參數數量限制
def arbitrary_keyword_arguments(**參數名稱):
pass #不受宣告參數數量限制外,可以像dict一樣自訂索引值
def default_parameter_value(參數名稱 = 參數預設值):
pass #可以先設定參數預設值
遞回
PYTHON
練習題
PYTHON
https://snakify.org/en/lessons/functions/problems/negative_power/
給定一個正實數 a 和整數 n,請計算a的n次方。
編寫一個函數 power(a, n) ,使用該函數計算結果並打印表達式的結果。
不要使用標準庫中的相同函數。
參考解答
PYTHON
def power(a, n):
if n == 0:
return 1
elif n < 0:
return 1 / (a * power(a, -n-1))
else:
return a * power(a, n-1)
print(power(float(input()), int(input())))
練習題
PYTHON
https://snakify.org/en/lessons/functions/problems/fibonacci_rec/
給定一個非負整數 n,打印第 n 個費氏數列的值。 為此,請編寫一個函數 fib(n),該函數採用非負整數 n 並返回第 n 個費氏數列的值。
不要使用迴圈,而是使用遞迴。 但是,您應該考慮為什麼遞迴方法比使用迴圈慢得多。
參考解答
PYTHON
def fib(n):
if n == 1 or n == 2:
return 1
else:
return fib(n-1) + fib(n-2)
print(fib(int(input())))
PYTHON
宣告串列
PYTHON
串列名稱 = [值0, 值1, ...]
切片
PYTHON
變數 = 串列/字串[開始:結束:間隔]
改變串列元素
PYTHON
串列[要修改的範圍(slice)] = [值, ...]
串列.append(值) #在串列最後新增值
串列.insert(索引值, 值) #在串列指定索引值的地方新增值
串列.extend(另一個串列) #在串列最後合進去另一個串列
串列.remove(值) #刪除串列中指定的值
串列.pop() #刪除串列中最後面的值
串列.clear() #清空串列
del 串列 #徹底刪除串列
串列的+和*
PYTHON
與字串的轉型
PYTHON
變數 = 字串.split(分隔符號)#字串轉串列
變數 = 分隔符號.join(串列) #串列轉字串
串列的一些操作
PYTHON
變數 = 串列.count(值) #數值在串列中出現幾次
變數 = 串列.index(值) #值在串列中的索引值
值 in 串列/值 not in 串列 #串列中有/沒有值,回傳值為布林
變數 = max(串列) #串列中的最大值
變數 = min(串列) #串列中的最小值
其他串列的方法
PYTHON
變數 = 串列.copy()#將串列的值複製一份到新的串列
串列.reverse() #反轉串列
串列.sort() #排序串列
變數 = len(串列) #串列長度
串列搭配for迴圈
PYTHON
串列 = [值 for 變數 in 序列]
串列 = [值 for 變數 in 序列 if 條件]
練習題
PYTHON
https://snakify.org/en/lessons/lists/problems/even_indices/
給定一串數字,裝入串列並打印索引值為偶數的所有串列元素。 (例: A[0]、A[2]、A[4]、...)。
參考解答
PYTHON
a = [int(i) for i in input().split()]
for i in range(0, len(a), 2):
print(a[i])
練習題
PYTHON
https://snakify.org/en/lessons/lists/problems/greater_than_neighbours/
給定一串數字,存入串列並打印符合條件的元素的數量:大於它們兩個隔壁(鄰居)元素的元素。
不應考慮串列的第一項和最後一項,因為它們沒有兩個鄰居。
參考解答
PYTHON
a = [int(i) for i in input().split()]
b = 0
for i in range(1, len(a)-1):
if a[i - 1] < a[i] and a[i + 1] < a[i]:
b += 1
print(b)
練習題
PYTHON
https://snakify.org/en/lessons/two_dimensional_lists_arrays/problems/scale_matrix/
給定兩個正整數 m 和 n,之後的輸入有m 行 n 個元素,給出一個 m×n 矩陣 (二維串列)A,最後一行輸入一個整數 c,將矩陣的每個元素乘以 c 並打印結果。
參考解答
PYTHON
l1 = [int(i) for i in input().split()]
A = [[int(i) for i in input().split()] for i in range(l1[0])]
l2 = int(input())
for i in range(l1[0]):
for j in range(l1[1]):
A[i][j] = A[i][j] * l2
print(" ".join([str(l2) for l2 in A[i]]))
練習題
PYTHON
https://snakify.org/en/lessons/two_dimensional_lists_arrays/problems/2d_max/
給定兩個整數表示行和列 (m×n),以及後續 m 行的 n 個元素,找到最大元素的索引位置並打印兩個值表示索引(i×j,行號和列號的索引值)。如果不同行中存在多個這樣的元素,則打印行號較小的那個。 如果同一行出現多個這樣的元素,則輸出最小的列號。
參考解答
PYTHON
b = [int(i) for i in input().split()]
a = [[int(i) for i in input().split()] for j in range(b[0])]
c = a[0][0]
d = [0, 0]
for k in range(b[0]):
for l in range(b[1]):
if a[k][l] > c:
c = a[k][l]
d[0], d[1] = k, l
print(" ".join(str(i) for i in d))
PYTHON
宣告元組
PYTHON
tuple名稱 = (值0, 值1, ...)
元組的一些操作、方法
PYTHON
變數 = tuple名稱.count(值) #數值在tuple中出現幾次
變數 = tuple名稱.index(值) #值在tuple中的索引值
值 in tuple名稱/值 not in tuple名稱 #tuple中有/沒有值,回傳值為布林
變數 = len(tuple名稱) #取tuple大小
變數 = max(tuple名稱) #tuple中的最大值
變數 = min(tuple名稱) #tuple中的最小值
PYTHON
PYTHON
ASCII碼
PYTHON
PYTHON
PYTHON
https://www.pcschool.com.tw/blog/it/what-is-python
https://www.uuu.com.tw/Public/content/Edm/20191219_Pythonall.htm#page-2
https://www.796t.com/article.php?id=133425
https://www.w3schools.com/python/
https://atedev.wordpress.com/2008/03/21/python-%E8%88%87%E8%A4%87%E6%95%B8%E8%A8%88%E7%AE%97/
https://medium.com/@virginiakm1988
https://zh.m.wikibooks.org/zh-tw/Python/%E5%85%83%E7%BB%84
https://www.mathcs.emory.edu/~valerie/courses/fall10/155/resources/op_precedence.html
PYTHON