Python
by 洪翠憶
PYTHON
Content
課程內容
PYTHON
-
基本語法(
三兩堂課解決)- 輸入/輸出
- 資料型態
- 條件判斷
- 迴圈
- 函式
- ...
-
函式庫
- numpy
- matplotlib
- pytorch
- pandas
- ...
-
稍難的語法
- 容器
- class
- 迭代器
- 正規表示式
- ...
Rule
課堂規則
PYTHON
-
一定要聽課
-
有問題可以直接問(開麥/打字都可以)
-
如果可以的話,上課期間讓電腦在你旁邊
-
需要請假的話不用告知
-
有空記得上機練習
-
可以拿講師做梗圖
Introduction
講師簡介
PYTHON
洪翠憶
中山女高資訊研究社(楓資)
程式教學學長
Discord:KonoDioDa
FB/IG/Line/Google:洪翠憶
程式語言:C++、Python
興趣:看動漫、玩手機、寫程式
請多指教!
Q&A
大家給我的話~(截至今日6:30pm)
PYTHON
Q&A
大家給我的話~(截至2021/10/25)
PYTHON
Feature and IDE
PYTHON
Feature
Python的特色
PYTHON
-
支援多種編寫方式
-
強制縮排、自動記憶體管理
-
應用於大數據分析、物聯網、人工智慧等等
-
豐富函式庫
-
執行較慢
雖然大家都知道這些
不過不講好像太不負責
還是講一下好了
Comment
Python註解方式
PYTHON
#單行註解
"""
多行註解
('或"都可以)
"""
Python IDE
Python編輯器
PYTHON
Resource
幫助精進Python的網頁
PYTHON
接下來這個學期
一起加油吧!
Data Type
PYTHON
PYTHON
數值:int, float, complex
文字:str, chr
容器:list, tuple, range
字典:dict
集合:set, frozenset
布林:bool
二進位:bytes, bytearray, memoryview
Numeric Type
數值型態
PYTHON
-
int
- 整數
- 例:5, 19, ...
-
float
- 浮點數
- 可存e指數
- 由於硬體限制無法非常精準
- 例:3.14, 1.496e11, ...
-
complex
- 複數(虛數運算)
- 用j表示(數學中通常用i表示)
- 例:8j, (2+3j), complex(2, 3), ...
Text Type
文字型態
PYTHON
-
str
- 字串
- 用「'」或「"」括起
- 可用切片(slice)選取內容
- 不是字元陣列
- format()
- 例:"hello", 'a', ...
-
chr
- 字元
- 例:chr(65), ...
Sequence Type
容器型態
PYTHON
-
list
- 串列
- 可用切片(slice)選取內容
- 內容以[]包住
- 例:[1, 2], ["hi", "hello"], ...
-
tuple
- 元組
- 可用切片(slice)選取內容
- 內容以()包住(也可不用())
- 內容不允許被修改、刪除
- 例:(1, 2), ("hi", "hello"), ...
-
range
- range(<頭 *預設為0>, [尾 *不含自己], <增加 *預設為1>)
- 例:range(2), range(1, 10, 2), ...
Mapping Type
映射型態
PYTHON
-
dict
- 字典
- 由鍵(key)與值(value)組成
- 內容以{}括住
- 可新增、更新、刪除資料
- 支援迭代器(iterator)
- 例:{"taiwan" : "taipei", "japan" : "tokyo"}, ...
Set Type
集合型態
PYTHON
-
set
- 集合
- 無順序
- 內容以{}括住
- 可新增、更新、刪除資料
- 例:{1, 2, 3}, {"dog", "cat", "rabbit"}, ...
-
frozenset
- 與集合幾乎一樣
- 無法改變資料
- 例:frozenset({1, 2, 3}), ...
Boolean Type
布林型態
PYTHON
-
bool
- 布林
- 只有True, False
- 只有 False, None, 0, "", (), [], {} 會回傳False
- 例:True, 3>5, ...
Binary Type
位元型態
PYTHON
-
bytes
- 位元組
- bytes(大小或內容)
- 例:bytes([1, 2]), b"hi", ...
-
bytearray
- 位元組陣列
- 可以改變
- 例:bytearray([1, 2]), ...
-
memoryview
- 可用slice
- 可以改變
- 例:memoryview(bytes([1, 2])), ...
Operator
PYTHON
PYTHON
and vs or
"和"與"或"的比較
PYTHON
-
and: 所有條件都要成立
-
or: 其中一項條件有成立即可
Input / Output
PYTHON
print()
輸出
PYTHON
-
*objs: 輸出內容
-
sep: 分隔符號
-
end: 結束符號
-
file: 被寫入的檔案
-
flush: 是否刷新
print(*objs, sep=' ', end='\n', file=sys.stdout, flush=False)
input()
輸入
PYTHON
-
*prompt: 提示訊息
-
輸入值為字串
input(*prompt)
Variable
PYTHON
variable
變數
PYTHON
-
變數名稱可用字母、數字、底線
-
名稱不可以數字開頭
-
可一次宣告多個變數
-
沒有宣告關鍵字
-
宣告後可改型態
-
區分大小寫
global vs local
全域變數 vs 區域變數
PYTHON
Conditions
PYTHON
if-else
if條件式
PYTHON
if 條件式:
陳述句
陳述句
elif 條件式:
陳述句
陳述句
else:
陳述句
陳述句
if-else
其他的寫法
PYTHON
變數名稱 = (條件) and True的回傳值 or False的回傳值
變數名稱 = [False的回傳值, True的回傳值][條件]
變數名稱 = True的回傳值 if 條件 else False的回傳值
nested
巢狀用法
PYTHON
Loop
PYTHON
while
while迴圈
PYTHON
while 條件:
陳述句
條件為true時跑迴圈
for
for迴圈
PYTHON
for 變數 in 序列:
陳述句
序列可為list, dict, tuple, set或字串
break & continue
break vs continue
PYTHON
break: 跳脫整個迴圈
continue: 跳過此次迴圈
else
迴圈的else
PYTHON
若完整執行迴圈沒遇到break時,會執行else內的語句
Function
PYTHON
define a function
宣告函式
PYTHON
-
函式名稱可用字母、數字、底線
-
名稱不可以數字開頭
-
區分大小寫
def 函式名稱(參數1, 參數2, ...):
陳述句
陳述句
call a function
呼叫函式
PYTHON
-
無論該函式是否有參數,都須打()
return & pass
return跟pass的用法
PYTHON
-
return: 回傳一個值並結束函式
-
pass: 為了不讓空白函式執行錯誤而填入的
argument
函數的參數
PYTHON
def arbitrary_argument(*參數名稱):
pass #不受宣告參數數量限制
def arbitrary_keyword_arguments(**參數名稱):
pass #不受宣告參數數量限制外,可以像dict一樣自訂索引值
def default_parameter_value(參數名稱 = 參數預設值):
pass #可以先設定參數預設值
-
可以是任何型態
-
用「,」分隔每個參數
recursion
遞回
PYTHON
-
函式自己呼叫自己
practice
練習題
PYTHON
https://snakify.org/en/lessons/functions/problems/negative_power/
題目:
給定一個正實數 a 和整數 n,請計算a的n次方。
編寫一個函數 power(a, n) ,使用該函數計算結果並打印表達式的結果。
不要使用標準庫中的相同函數。
answer
參考解答
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())))
practice
練習題
PYTHON
https://snakify.org/en/lessons/functions/problems/fibonacci_rec/
題目:
給定一個非負整數 n,打印第 n 個費氏數列的值。 為此,請編寫一個函數 fib(n),該函數採用非負整數 n 並返回第 n 個費氏數列的值。
不要使用迴圈,而是使用遞迴。 但是,您應該考慮為什麼遞迴方法比使用迴圈慢得多。
answer
參考解答
PYTHON
def fib(n):
if n == 1 or n == 2:
return 1
else:
return fib(n-1) + fib(n-2)
print(fib(int(input())))
Lambda
PYTHON
what is lambda
Python lambda 介紹
PYTHON
-
匿名函式
-
只能有一個表示式
變數 = lambda 參數1, 參數2, ...: 表示式
methods of lambda
Python lambda 的應用
PYTHON
filter(lambda 參數: 表示式, 序列)
#回傳符合表示式條件的序列內容
map(lambda 參數: 表示式, 序列)
#回傳經過表示式運算的序列內容
sorted(序列, key = lambda 參數: 表示式)
#可用lambda寫sorted的key
function vs lambda
Python lambda 和 function 的比較
PYTHON
function | lambda | |
---|---|---|
是否需要定義名稱 | v | x |
是否可以擁有多行運算式 | v | x |
回傳結果方式 | 遇到return關鍵字時 | 運算完自動回傳 |
try-except
PYTHON
syntax
try-except語法
PYTHON
try:
欲嘗試的程式碼
except 錯誤類型(選填):
上述程式無法執行時執行的程式碼
try:
陳述句
except:
陳述句
else:
try的陳述句可順利執行時也執行這句
try:
陳述句
except:
陳述句
finally:
try-except檢查完時執行這句
raise an exception
語法
PYTHON
raise 錯誤種類(顯示訊息)
(錯誤種類列表見附錄)
Class & Object
PYTHON
object-oriented programming (OOP)
物件導向程式設計概念
PYTHON
-
具有物件(Object)概念
-
能提高軟體的重用性、擴充性及維護性
-
常應用於開發大型應用程式
-
物件導向程式語言包含Python、C++、Java等
class and object
類別與物件的關係
PYTHON
-
類別(class):類似設計圖,會定義未來產生物件時所擁有的屬性及方法
-
物件(object):是類別的實例
syntax
class語法、如何建立與使用物件
PYTHON
class 類別名稱:
def __init__(self, 其他屬性):
建構式內容
def 方法名稱(self, 其他參數):
方法內容
內容
物件名稱 = 類別名稱(建構式的屬性)
物件名稱.方法名稱(參數1, 參數2, ...)
constructor
建構式
PYTHON
-
建立物件的同時,會自動執行的方法
-
通常在此初始化物件的屬性
-
至少要有一個self參數
-
沒有回傳型別
-
__init__
method in class
類別裡的方法
PYTHON
-
至少要有一個self參數
-
可以想像是物件的行為
-
和函式很像
-
self:代表了實體物件的參考
inheritance
類別的繼承
PYTHON
-
父類別(parent class):被繼承的類別,或稱基底類別(base class)
-
子類別(child class):會繼承父類別,擁有父類別公開的屬性及方法
class 子類別名稱(父類別):
def __init__(self, 其他屬性):
父類別.__init__(self, 其他屬性) #super().__init__(self, 其他屬性)
其他建構式內容
def 方法名稱(self, 其他參數):
方法內容
example
範例
PYTHON
Iterator
PYTHON
what is iterator
迭代器介紹
PYTHON
-
可迭代的物件
-
可迭代物件:Lists,、tuples、 dictionaries、 sets等等,可從中取得迭代器
create an iterator
用class創造迭代器
PYTHON
List
PYTHON
create a list
宣告串列
PYTHON
-
命名規則與變數相同
-
內容有編號、有順序、可改值、可重複出現
-
可將不同型態的值存入同個陣列
-
內容用[]括起
串列名稱 = [值0, 值1, ...]
slice
切片
PYTHON
-
可用於串列、字串
-
有頭無尾
變數 = 串列/字串[開始:結束:間隔]
change list items
改變串列元素
PYTHON
串列[要修改的範圍(slice)] = [值, ...]
串列.append(值) #在串列最後新增值
串列.insert(索引值, 值) #在串列指定索引值的地方新增值
串列.extend(另一個序列) #在串列最後合進去另一個序列
串列.remove(值) #刪除串列中指定的值
串列.pop() #刪除串列中最後面的值
串列.clear() #清空串列
del 串列 #徹底刪除串列
+ and * in list
串列的+和*
PYTHON
-
+:合併串列
-
*:合併n次串列
split and join
與字串的轉型
PYTHON
變數 = 字串.split(分隔符號)#字串轉串列
變數 = 分隔符號.join(串列) #串列轉字串
operations on list
串列的一些操作
PYTHON
變數 = 串列.count(值) #數值在串列中出現幾次
變數 = 串列.index(值) #值在串列中的索引值
值 in 串列/值 not in 串列 #串列中有/沒有值,回傳值為布林
變數 = max(串列) #串列中的最大值
變數 = min(串列) #串列中的最小值
other methods
其他串列的方法
PYTHON
變數 = 串列.copy()#將串列的值複製一份到新的串列
串列.reverse() #反轉串列
串列.sort() #排序串列
變數 = len(串列) #串列長度
for in list
串列搭配for迴圈
PYTHON
串列 = [值 for 變數 in 序列]
串列 = [值 for 變數 in 序列 if 條件]
practice
練習題
PYTHON
https://snakify.org/en/lessons/lists/problems/even_indices/
題目:
給定一串數字,裝入串列並打印索引值為偶數的所有串列元素。 (例: A[0]、A[2]、A[4]、...)。
answer
參考解答
PYTHON
a = [int(i) for i in input().split()]
for i in range(0, len(a), 2):
print(a[i])
practice
練習題
PYTHON
https://snakify.org/en/lessons/lists/problems/greater_than_neighbours/
題目:
給定一串數字,存入串列並打印符合條件的元素的數量:大於它們兩個隔壁(鄰居)元素的元素。
不應考慮串列的第一項和最後一項,因為它們沒有兩個鄰居。
answer
參考解答
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)
practice
練習題
PYTHON
https://snakify.org/en/lessons/two_dimensional_lists_arrays/problems/scale_matrix/
題目:
給定兩個正整數 m 和 n,之後的輸入有m 行 n 個元素,給出一個 m×n 矩陣 (二維串列)A,最後一行輸入一個整數 c,將矩陣的每個元素乘以 c 並打印結果。
answer
參考解答
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]]))
practice
練習題
PYTHON
https://snakify.org/en/lessons/two_dimensional_lists_arrays/problems/2d_max/
題目:
給定兩個整數表示行和列 (m×n),以及後續 m 行的 n 個元素,找到最大元素的索引位置並打印兩個值表示索引(i×j,行號和列號的索引值)。如果不同行中存在多個這樣的元素,則打印行號較小的那個。 如果同一行出現多個這樣的元素,則輸出最小的列號。
answer
參考解答
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))
APCS(2021/11/7) Q1
練習題
PYTHON
answer
參考解答
PYTHON
n = int(input())
h = [int(i) for i in input().split()]
ans = 0
for i in range(n):
if h[i] == 0:
if i == 0:
ans += h[1]
elif i == n-1:
ans += h[n-2]
else:
ans += [h[i-1], h[i+1]][h[i+1] < h[i-1]]
print(ans)
Tuple
PYTHON
create a tuple
宣告元組
PYTHON
-
命名規則與變數相同
-
內容有順序、不可改值、可重複出現相同值
-
可將不同型態的值存入同個tuple
-
可用slice、join()、+、*
-
內容用()括起
tuple名稱 = (值0, 值1, ...)
operations/methods on tuple
元組的一些操作、方法
PYTHON
變數 = tuple名稱.count(值) #數值在tuple中出現幾次
變數 = tuple名稱.index(值) #值在tuple中的索引值
值 in tuple名稱/值 not in tuple名稱 #tuple中有/沒有值,回傳值為布林
變數 = len(tuple名稱) #取tuple大小
變數 = max(tuple名稱) #tuple中的最大值
變數 = min(tuple名稱) #tuple中的最小值
Set
PYTHON
create a set
宣告集合
PYTHON
-
命名規則與變數相同
-
內容無編號、無順序、可改值、不可重複出現
-
可將不同型態且不變的值存入同個集合
-
內容用{}括起
集合名稱 = {值0, 值1, ...}
operations on list
集合的運算子
PYTHON
集合 = 集合A | 集合B #A與B的聯集
集合 = 集合A.union(集合B)
集合 = 集合A & 集合B #A與B的交集
集合 = 集合A.intersection(集合B)
集合 = 集合A - 集合B #A對B的差集
集合 = 集合A.difference(集合B)
集合 = 集合A ^ 集合B #A與B兩者的差集和(聯集-交集)
集合 = 集合A.symmetric_difference(集合B)
集合A.isdisjoint(集合B) #如果A與B之間沒有交集,回傳True
operations on list
集合的運算子
PYTHON
集合A <= 集合B #集合A是否為集合B的子集合,回傳值為布林
集合A.issubset(集合B)
集合A >= 集合B #集合B是否為集合A的子集合,回傳值為布林
集合A.issuperset(集合B)
值 in 集合/值 not in 集合 #集合中有/沒有值,回傳值為布林
變數 = max(集合) #串列中的最大值
變數 = min(集合) #串列中的最小值
change set items
改變集合元素
PYTHON
集合.update(另一個序列) #在集合中合進去另一個序列
集合A |= 集合B #用運算子的寫法,但只適用於集合對集合
集合.intersection_update(另一個序列) #將集合更新成與另一序列的交集
集合A &= 集合B
集合.difference_update(另一個序列) #將集合中與另一個序列的交集移除
集合A -= 集合B
集合.symmetric_difference_update(另一個序列) #將集合更新成兩者的差集和
集合A ^= 集合B
change set items
改變集合元素
PYTHON
集合.add(值) #在集合最後新增值
集合.remove(值)
#刪除集合中指定的值,如果沒有該值,"會"回傳錯誤訊息
集合.discard(值)
#刪除集合中指定的值,如果沒有該值,"不會"回傳錯誤訊息
集合.pop()
#刪除集合中最後面的值,但你並不知道最後的值是什麼:)
集合.clear() #清空集合
del 集合 #徹底刪除集合
other methods
其他集合的方法
PYTHON
變數 = 集合.copy()#將集合的值複製一份到新的集合
變數 = len(集合) #集合長度
Dictionary
PYTHON
create a dict
宣告字典
PYTHON
-
命名規則與變數相同
-
內容有索引值、可改值、key不可重複但value可重複
-
可將不同型態的值存入同個字典
-
內容用{}括起
dict名稱 = {
鍵1 : 值1,
鍵2 : 值2, ...
}
create a dict
宣告字典
PYTHON
字典名稱 = dict(鍵1 = 值1, 鍵2 = 值2, ...)
字典名稱 = dict([(鍵1, 值1), (鍵2, 值2), ...])
#此時的鍵不能有引號且受限於變數命名規則
字典名稱 = dict(zip([鍵1, 鍵2, ...], [值1, 值2, ...]))
字典名稱 = dict.fromkeys((鍵1, 鍵2, ...), 值)
access dict items
取得字典元素
PYTHON
變數 = 字典[鍵] #以key取值
變數 = 字典.get(鍵)
變數 = 字典.keys() #取得dict所有的key
變數 = 字典.values() #取得dict所有的value
變數 = 字典.items() #取得dict所有的元素,每對以tuple呈現
change dict items
改變字典元素
PYTHON
字典.update(另一個字典) #在字典後加入字典
字典[新的鍵] = 新的值 #在字典後新增這組
#修改值的方法就用覆蓋的
字典.pop(鍵) #刪除指定鍵的值
字典.popitem() #刪除最後一組元素
字典.clear() #清空字典
del 字典 #刪掉整個字典
other methods
其他字典的方法
PYTHON
變數 = 字典.copy()
變數 = len(字典)
變數 = 字典.setdefault(鍵, 值)
#如果key已存在的話,回傳該值,否則新增這筆元素並回傳值
Sequence Comparison
PYTHON
PYTHON
list | tuple | set | dict | |
---|---|---|---|---|
是否有編號 | v | v | x | 自訂key |
是否有順序 | v | v | x | v |
值是否可重複出現 | v | v | x | (value可以key不行) |
是否可改值 | v | x | v | v |
被什麼括起 | [] | () | {} | {} |
是否可用slice | v | v | x | x |
Import
PYTHON
types
模組的類型
PYTHON
-
內建的模組
-
可直接引入
-
sys.path查的到存放路徑
-
-
自定義模組
-
建立後可直接引入
-
-
第三方模組
-
使用前得先下載(可用PIP)
-
下載完成即可引入
-
syntax
語法
PYTHON
import 模組
變數 = 模組.方法()
變數 = dir(模組) #查看模組的所有內容
import 模組 as 暱稱
變數 = 暱稱.方法()
from 模組 import 方法
變數 = 方法()
from 模組 import * #匯入該模組所有內容
變數 = 方法()
(以math做示範)
PIP
pip指令
PYTHON
>pip --version
-
查看版本
-
安裝模組
-
移除模組
-
列出已安裝模組資訊
>pip install 模組
>pip uninstall 模組
>pip list
demonstration
使用自訂模組與第三方模組示範影片
PYTHON
(00:30~02:30), (07:10~09:25)
python module list
python內建模組列表
PYTHON
Regular Expression / format()
PYTHON
RegEx
正規表示式
PYTHON
-
支援多種語言
-
常應用於檢查文字格式
import re
變數 = re.compile("正規表示式")
#建立regex比較格式的物件
變數 = re.findall("正規表示式", 字串)
#回傳一個串列,內容為字串中符合格式的所有字串
變數 = re.finditer("正規表示式", 字串)
#回傳上述內容的迭代器
method
re的方法
PYTHON
變數 = re.fullmatch("正規表示式", 字串)
#整串字串符合格式時回傳該物件,沒有時回傳None
變數 = re.match("正規表示式", 字串)
#字串開頭符合格式時回傳該物件,沒有時回傳None
變數 = re.search("正規表示式", 字串)
#回傳第一批符合格式該物件,沒有時回傳None
變數 = re.split("正規表示式", 字串)
#回傳分隔合規字串間的符號
變數 = re.sub("正規表示式", 取代字串, 字串)
#將合規字串用取代字串取代掉後,回傳該字串
變數 = re.subn("正規表示式", 取代字串, 字串)
#回傳tuple,內有上述內容與修改數量
metacharacter
中介字元
PYTHON
. 除了新行符號外的任何字元
^ 字串開頭的子字串或排除指定字元或群組
$ 字串結尾的子字串
* 單一字元或群組出現任意次數
+ 單一字元或群組出現至少一次
? 單一字元或群組0或1次
{m,n} 單一字元或群組的m到n倍數
[] 對中括弧內的字元形成集合
\ 跳脫字元
| 單一字元或群組的或
() 對小括弧內的字元形成群組
special sequence
特別序列
PYTHON
\number 群組的序數
\A 字串的開頭字元
\b 作為單字的界線字元
\B 作為字元的界線字元
\d 數字,從0到9
\D 非數字
\s 各種空白符號,包括新行符號\n
\S 非空白符號
\w 任意文字字元,包括數字
\W 非文字字元,包括空白符號
\Z 字串的結尾字元
format()
PYTHON
-
像C的printf()
字串.format(參數1, 參數2 ...)
f字串
format()
詳細說明
PYTHON
符號 | 說明 |
---|---|
{:,} | 用,分隔的數字格式 |
{:.α%} | 百分比格式,保留α位小數 |
{:.αe} | 指數格式,保留α位小數 |
{:b} | 二進位 |
{:d} | 十進位 |
{:o} | 八進位 |
{:x} | 十六進位 |
符號 | 說明 |
---|---|
{:.αf} | 保留小數點後α位 |
{:+.αf} | 帶符號保留小數點後α位 |
{:β>αd} | 數字左邊補β至長度為α |
{:β<αd} | 數字右邊補β至長度為α |
{:>αd} | 右對齊,長度為α |
{:<αd} | 左對齊,長度為α |
{:^αd} | 中對齊,長度為α |
Appendix
PYTHON
ASCII Code
ASCII碼
PYTHON
Exceptions
Python錯誤種類
PYTHON
ArithmeticError 所有數值計算錯誤的基類
AssertionError 斷言語句失敗
AttributeError 對像沒有這個屬性
BaseException 所有異常的基類
DeprecationWarning 關於被棄用的特徵的警告
EOFError 沒有內建輸入,到達EOF 標記
EnvironmentError 操作系統錯誤的基類
Exception 常規錯誤的基類
FloatingPointError 浮點計算錯誤
FutureWarning 關於構造將來語義會有改變的警告
GeneratorExit 生成器(generator)發生異常來通知退出
IOError 輸入/輸出操作失敗
ImportError 導入模塊/對象失敗
IndentationError 縮進錯誤
IndexError 序列中沒有此索引(index)
KeyError 映射中沒有這個鍵
KeyboardInterrupt 用戶中斷執行(通常是輸入^C)
LookupError 無效數據查詢的基類
MemoryError 內存溢出錯誤(對於Python 解釋器不是致命的)
NameError 未聲明/初始化對象 (沒有屬性)
NotImplementedError 尚未實現的方法
OSError 操作系統錯誤
OverflowError 數值運算超出最大限制
OverflowWarning 舊的關於自動提升為長整型(long)的警告
PendingDeprecationWarning 關於特性將會被廢棄的警告
ReferenceError 弱引用(Weak reference)試圖訪問已經垃圾回收了的對象
RuntimeError 一般的運行時錯誤
RuntimeWarning 可疑的運行時行為(runtime behavior)的警告
StandardError 所有的內建標準異常的基類
StopIteration 迭代器沒有更多的值
SyntaxError Python 語法錯誤
SyntaxWarning 可疑的語法的警告
SystemError 一般的解釋器系統錯誤
SystemExit 解釋器請求退出
TabError Tab 和空格混用
TypeError 對類型無效的操作
UnboundLocalError 訪問未初始化的本地變量
UnicodeDecodeError Unicode 解碼時的錯誤
UnicodeEncodeError Unicode 編碼時錯誤
UnicodeError Unicode 相關的錯誤
UnicodeTranslateError Unicode 轉換時錯誤
UserWarning 用戶代碼生成的警告
ValueError 傳入無效的參數
Warning 警告的基類
WindowsError 系統調用失敗
ZeroDivisionError 除(或取模)零 (所有數據類型)
Reference
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
https://www.runoob.com/python3/python3-tutorial.html
http://kevin.hwai.edu.tw/~kevin/material/JAVA/Sample2016/ASCII.htm
https://medium.com/@Kadai/conditional-operator-in-python-a4a041172bab
https://www.learncodewithmike.com/
https://drive.google.com/file/d/1-zowdUSivxy5o3_iuo3IFHFPSzn1-cBW/view
http://kaiching.org/pydoing/py/python-library-re.html
https://zh.wikipedia.org/wiki/%E6%9E%84%E9%80%A0%E5%99%A8#Python
python
By justhentai
python
- 875