iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
1
AI & Data

Machine Learning for Dummies系列 第 12

[Day 12] More about Python!

  • 分享至 

  • xImage
  •  

昨天的文章講完了 Python 基本的資料型別之後,接下來我們來更進一步來操作這些變數吧!

型別轉換

在處理資料的時候,最重要的事情是確認資料到底是什麼型別,而有時候根據不同的狀況,我們需要將輸入的資料變成我們想要處理的型別。這裡簡單介紹一下幾種型別轉換的例子

1. float 轉 int

我們可以透過 int() 這個方法將 float 轉換成 int。轉換的過程中,小數點後面的位數將會無條件捨去(可以看下圖中的例子)

Imgur

2. int 轉 float

反過來,我們可以用 float() 將 int 轉換成 float

Imgur

3. int or float 轉 str

這裡也很簡單的,可以用 str() 來把數字轉換成字串

Imgur

4. str 轉 int or float

我們可以用最一開始提到的 float() 或是 int() 將字串轉換成 floar 或是 int。不過如果這個字串本身就不是數字的意義,或者想要把 "3.14" 轉換成整數 int,就會噴錯(見下圖的 c =int(a) 的例子)

Imgur

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'}

Imgur

流程控制

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,就會產生無限迴圈

Imgur

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,但不會是一個數字。可以見下圖的例子

Imgur

但是如果我們就是要跑過一個區間的數字,其實我們不需要去建立一個包含那些數字的 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

Imgur

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 吧!

Imgur


上一篇
[Day 11] Hello Python!
下一篇
[Day 13] Hello NumPy! (1)
系列文
Machine Learning for Dummies30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言