Attention is all you need 筆記
Effective Approaches to Attention-based Neural Machine Translation 筆記
Python 物件
今天要來看 Python 的物件導向,其實我在大二上的物件導向課的內容都快忘光光了,所以這個篇文章可能不太詳細。
什麼是物件
物件裡面有 data (通常為變數,稱為屬性) 與 方法or動作 (通常為 function),代表一個具體的東西。
其實我覺得很難解釋和表達這個名詞,我是這麼想的,就像我,我是一個人,人一定有身高體重,然後人會走路和跳舞等等的動作,我就是一個物件的概念。身高體重就是 data,動作就是 function。那 class 就是定義人這個名詞,則是比較抽象的。
或者像是 Python 裡面 String
這個變數型態就是一個 class
,而我們創建的字串(str(96)
)就是一個物件,它的屬性就是字串內容('96'
)和 type ,而方法就是它裡面內建的 function。
好吧,有解釋跟沒解釋一樣,等到我比較了解再來更改好了。
Python 檔案處理
Python 的 try-except
例外處理
當我們寫程式時,會發生一些錯誤,像是 list 超出範圍、 open file 卻找不到檔案等等。
這些電腦都會進行報錯,但是我們不想中斷程式,想繼續進行時該怎麼辦呢?
這時候我們就使用 try-exccept 語法。
舉個例子: 我們進行 open example.txt,但是事實上並沒有這個檔案會發生什麼事?
1 | # -*- coding: utf-8 -*- |
2 | |
3 | file = open('example.txt','r') |
4 | ---------------執行結果--------------- |
5 | file = open('example.txt','r') |
6 | FileNotFoundError: [Errno 2] No such file or directory: 'example.txt' |
如預期的,電腦告訴我們找不到 example.txt 這個檔案。
Python 命名空間
什麼是命名空間
每一個 function or class 等等都有定義自己的命名空間。
假如你在 fun1( ) 有一個 variable 叫做 X,又在 fun2( ) 裡面有個 variable 也叫做 X,
雖然名稱一樣,但是他們對應的卻是不一樣的東西,而且也不跨界使用。
來看看例子:1
def print_animal():
2
animal = 'cat'
3
print(animal)
4
5
def print_cat():
6
print(animal)
7
8
if __name__ =='__main__':
9
print_animal()
10
print_cat()
11
---------------執行結果---------------
12
line 6, in print_cat
13
print(animal)
14
NameError: name 'animal' is not defined
電腦會報錯!,因為 print_cat()
沒有定義 animal
這個 variable
Python 的 Function
Function 定義
在 Python function 以 def
來定義
1 | def printHello(name = 'Bob'): |
2 | """如果是Jack 印出 hello world""" |
3 | if name == 'Jack': |
4 | print('hello world!') |
5 | else: |
6 | print('who are you?') |
7 | return 0 |
8 | |
9 | printHello() |
10 | printHello('Jenny') |
11 | printHello('Jack') |
12 | ---------------執行結果--------------- |
13 | who are you? |
14 | who are you? |
15 | hello world! |
Python Comprehensions
Python 的 For 迴圈
上一篇我們談到 while
,這篇我們就來談 for
我們把 while迴圈 的找偶數的程式碼改成用 for
實做1
numbers = [1,23,5]
2
3
for number in numbers:
4
if number % 2 == 0:
5
print('Find even number',number)
6
break
7
else:
8
print('No even number found')
9
---------------執行結果---------------
10
No even number found