iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0

不知道昨天介紹的各位有沒有忘記,如果忘記的話現在可以先回去複習看看喔,那廢話不多說,今天繼續來介紹下去吧。

串列、數值操作

—這部分會簡單列出串列最常使用的幾個方法,其餘完整方法可以看看官方文檔說明—

串列.append(元素):新增元素到串列中

串列1.extend(串列2):將串列1跟串列2合併

串列.insert(索引值,元素):將元素插入串列中指定的位置(索引值)

串列.reverse():將串列反過來排列

串列.sort():將串列由小排到大

x=len(串列):回傳串列的長度,即元素的數量

x=max(串列):找出串列的最大值

x=min(串列):找出串列的最小值

x=sum(串列):計算串列的總和

x=串列.index(元素):元素在串列中的索引值

x=串列.count(元素):元素在串列中出現的次數

x=串列.pop(索引值):移除串列中該索引值的元素,並回傳移除的元素,若無填寫索引值預設為移除最後一個元素

—這部分會簡單列出數值最常使用的幾個方法—

abs(x):計算x的絕對值

hex(x):將x轉為16進位

oct(x):將x轉為8進位

pow(x,y):取x的y次方

round(x,y):對x做五捨六入,取到小數點y位,若無y則取整數

自定義副程式

自定義副程式非常簡單,只需要使用def(參數1,參數2…)就好,回傳值跟參數可根據需求定義,具體如下:

def func(x,y):
    ans=x**y
    return ans

定義副程式的好處就是如果有一個程式重複使用到某些程式區塊的話,就可以定義副程式並且直接呼叫副程式,被呼叫的副程式將會執行副程式的內容,這在程式的維護跟可看性上都有很大的幫助,呼叫副程式只要呼叫副程式名字就好了,是不是很簡單呢?例如呼叫x=func(2,4)那x就會被賦值16

參數也可以有預設值,這樣就不用每次呼叫都要重複輸入,例如def func(x,y=2)...,需要注意的是有預設值的參數”必須”要放在最後面。

副程式中也會宣告變數,在副程式中宣告的副程式為區域變數,此類變數並不會影響主程式區塊的變數,縱使變數名稱一樣,如果要能影響的話,需要以global [變數]來指定便數為全域變數。

def func():
    x=1
    print('func x:',x)
x=2
func()
print('main x:',x)
# func x: 1
# main x: 2
def func():
    global x
    x=1
    print('func x:',x)
x=2
func()
print('main x:',x)
# func x: 1
# main x: 1

例外處理

python有針對可能出錯的程式區塊進行例外處理的功能,主要是怕在不確定的地方發生錯誤後後面的程式將不會執行而是結束程式。例外處理的語法為try…except…else…finally,那麼這幾段是甚麼意思呢,且聽我娓娓道來…

今天想跑一個將除法算式的程式列印出來的程式,不過除數輸入有可能會出現0,萬一除數出現0的話後面的程式就不會執行了,於是寫了一個例外處理如下:

try:
    print(5/0) #除數不可為0,會發生錯誤
except Exception as e:
    print(e)
else:
    print('沒有發生錯誤')
finally:
    print('例外處理結束')

print('end!')
division by zero
例外處理結束
end!

try底下的區塊就是可能會發生錯誤(例外)的部分,而一旦發生錯誤的話就會執行except的區塊,如果沒有發生錯誤的話就會執行else的區塊,最後不管有沒有出錯都會執行finally區塊的程式,else跟finally是不一定要有的,但try…except是必須要定義的,而例外處理這些趨塊執行完後,不管有沒有出錯都不會影響到後續程式的執行,除非except、else、finally區塊中也噴error那就另當別論了(笑)。

請注意:except可以多段,分別捕捉不同的例外類別並針對不同例外做不同處理,本範例使用的Exception as e 是指將所有例外內容(Exception)指派給e,這段可有可無,不過在debug通常都會加上去,python中有相當多元的例外類別,有興趣可以參考底下文章。

結語

那今天就介紹到這裡啦~今天介紹的概念都對程式開發有相當大的幫助,其中網路上以及許多參考資料都有更加詳細完整的說明,各位也可以動手試試看熟悉或者複習這些語法喔。礙於篇幅,我想將類別跟生成式留到明天好好介紹(絕對不是我想偷懶才分成兩天的哈哈)

參考資料、連結

https://docs.python.org/3/tutorial/datastructures.html
https://docs.python.org/3/tutorial/errors.html


上一篇
D2:python入門(1/3)
下一篇
D4:python入門(3/3)
系列文
高中生也可以!利用強化學習讓機器人動起來!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言