在昨天的文章講完了 Python 基本的資料型別之後,接下來我們來更進一步來操作這些變數吧!
在處理資料的時候,最重要的事情是確認資料到底是什麼型別,而有時候根據不同的狀況,我們需要將輸入的資料變成我們想要處理的型別。這裡簡單介紹一下幾種型別轉換的例子
1. float 轉 int
我們可以透過 int()
這個方法將 float 轉換成 int。轉換的過程中,小數點後面的位數將會無條件捨去(可以看下圖中的例子)
2. int 轉 float
反過來,我們可以用 float()
將 int 轉換成 float
3. int or float 轉 str
這裡也很簡單的,可以用 str()
來把數字轉換成字串
4. str 轉 int or float
我們可以用最一開始提到的 float()
或是 int()
將字串轉換成 floar 或是 int。不過如果這個字串本身就不是數字的意義,或者想要把 "3.14" 轉換成整數 int,就會噴錯(見下圖的 c =int(a) 的例子)
5. str 轉 list/tuple/set
假設我們有一個字串為 "hello python" ,可以透過 list()
的方法將他轉換成
['h', 'e', 'l', 'l', 'o', ' ', 'p', 'y', 't', 'h', 'o', 'n']
也就是將每個字母,包含字串中的空格,依序放入 list 當中。
同樣的,我們可以用 tuple()
把字串轉換成 tuple,你會看到 print 出來會是
('h', 'e', 'l', 'l', 'o', ' ', 'p', 'y', 't', 'h', 'o', 'n')
不過假如我們用 set()
來轉換字串,因為 set 當中的元素都是獨一無二的,因此在 "hello python" 當中的多餘的 h, l, o 會被刪掉,只留下
{'n', ' ', 'y', 'h', 'l', 'p', 'e', 't', 'o'}
1. while loop
while loop 的寫法相當簡單,如下
count = 0
while (count < 5):
print (count)
count += 1
print ("Well done!")
但是有兩點要特別注意。第一個是不要忘記 while (count < 5):
後面的這個冒號;第二個是,由於 Python 是透過縮排來判斷程式執行的區塊,因此如果我們忘記了 count +=1 的縮排,變成下面這樣
count = 0
while (count < 5):
print (count)
count += 1
print ("Well done!")
那麼在 while loop 裡面 count 就不會持續的加 1,就會產生無限迴圈
2. for loop
這又是另外一個 Python 和其他語言比較不一樣的地方了。在其他的語言當中,我們可以給 for loop 指定一個 iteration 的範圍,然後讓程式去執行我們想要他做的事情。譬如我們要讓程式印出五次的 "hello world",在 JavaScript 我們會這樣寫
for (let i = 0; i < 5 ; i++) {
print('hello world')
}
或是在 Ruby
for i in 0..5
puts "hello world"
end
但是在 Python,就沒有辦法用一樣的方法來做了。Python 的 for loop 主要是去 iterate 一個 collection 當中元素,形式如下:
for i in [iterable collection]:
[loop body]
這個 [iterable collection]
可以是 list、tuple、set,也可以是 str,但不會是一個數字。可以見下圖的例子
但是如果我們就是要跑過一個區間的數字,其實我們不需要去建立一個包含那些數字的 list/tuple/set ,這時候我們可以使用 range()
這個方法。
for i in range(5):
print i
這時候我們就可以印出 0, 1, 2, 3, 4
range 裡面也可以放兩個數字,代表一個區間範圍,譬如
for i in range(5, 10):
print i
就會印出 5, 6, 7, 8, 9
3. if/else
最後讓我們來看看 if/else。在 python 當中,形式為
for [condition]:
[do something]
elif [condition]:
[do something]
else:
[do something]
這裡一樣要注意的是,在 for、elif 的 condition 後面,以及 else 後面都要記得加上 :
,另外如果 elif 後面沒有 condition、else 後面加上了 condition 都是會讓程式無法繼續運作的喔。
Python 的基礎語法就先講到這裡,明天開始會介紹一系列的 Python 套件,來幫助我們在處理資料上更得心應手
最後,讓我們用 for loop、range、if/else 來做個簡單的 fizzbuzz 吧!