iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
AI & Data

跟我一起在AI的世界裡打怪獸系列 第 15

Day15 python語法(下)-語句(if、while、for)、定義函式(def)

  • 分享至 

  • xImage
  •  

今天要來介紹在python中常用的語句,並且順便介紹自訂義函式的過程,因為函式的定義常用語句的方式定義,所以放在一起介紹。

在看文章的時候,跟著一起操作會學比較快喔!下面是今天的學習目錄:

  • if…elif…else 條件判斷語句,以及搭配try…except 異常處理語句的簡單運用介紹
  • while 迴圈語句,以及搭配continue、break語句的簡單運用介紹
  • for 迴圈語句運用介紹
  • def 定義函式,與搭配for語句的基本用法

if…elif…else 條件判斷語句

屬於條件判斷語句,根據不同條件執行不同的程式碼。

  • if、elif、else後面都要加冒號(:)
  • if、elif、else下面的程式碼都要縮進四格,很重要請念三遍!!!

基本 if…else

x = 60

# 判斷成績
if x >= 60:
    print("及格")   # 記得要縮進4格
else:  # 在if、else後面都要加冒號:
    print("不及格")
    
# 也可以不加else
if x >= 60:
    print("及格")

多項判斷 if…elif…else

要注意的是,它的判斷式從第一個往下看,符合就停止。

所以像下列,如果要判斷成績要從最高往下,不然如果從60開始設,它就會直接停在60那裡,印出"D"囉!

x = 60

# 判斷成績
if x >= 90:
    print("A")
elif x >= 80:
    print("B")
elif x >= 70:
    print("C")
elif x >= 60:
    print("D")
else:
    print("F")

try…except 異常處理語句

屬於錯誤處理語句,用於找到並處理異常。
如果在運行前就知道可能會出現異常,就可以用這個防止程式因為異常而停止,使得程式可以繼續執行,也可以根據不同類型的異常來執行不同的處理程式碼。

  • 固定用法"except Exception as e:",因為except找錯誤要基於python內建的BaseException。
x = "arm"

try:
    if x >= 90:
        print("A")
    elif x >= 80:
        print("B")
    elif x >= 70:
        print("C")
    elif x >= 60:
        print("D")
    else:
        print("F")
except Exception as e:   # 固定用法,如果把Exception改掉,會出問題。
    print("發生異常:", e)

# 返回的結果會是 發生異常: '>=' not supported between instances of 'str' and 'int'

while 迴圈語句

這是一個迴圈語句,條件為True的情況下重複執行程式碼塊,直到條件不再滿足為止。

  • 條件設定上要注意,避免進入無窮迴圈。如果條件判定一直是Ture,它較會一直跑、一直跑……如果沒有按停,就要看是程式跑不下去,還是電腦爆炸自己停了(?)

基本使用

n = 6

while n>0:
    print(n)
    n = n-1
print("結束")

"""
上面會返回:
6
5
4
3
2
1
結束
"""

break、continue差別

break continue
用處 結束整個迴圈執行,不再該迴圈的程式碼。 停止「當次」迴圈,繼續進行下次迴圈
差別 直接結束整個迴圈 跳過某些迭代,但不會停止整個迴圈

配合break使用

可以做一個簡單的小遊戲,可以自己複製貼上玩玩看:

while True:
    number = input('> ')
    if number == '24':
        break
    print('非正確答案')
print('答案正確')

"""
當按下運行後,會出現一個輸入框。
如果我輸入24以外的數字,它會返回「非正確答案」,並重新出現輸入框。
如果我輸入24,它會返回「非正確答案」,並停止運行(或繼續while後面的程式碼)。
"""

配合continue使用

n = 6

while n>0:
    n = n-1
    if n == 2:
       continue
    print(n)
print("結束")

"""
上面會返回:
5
4
3
1
結束
"""

for 迴圈語句

對一個「序列」裡每個項目逐一處理
在這個範例中,fruits 是一個包含了三個水果的列表。

示例

  • for i in school: :這一行表示我們要遍歷 school 這個列表
  • i :把列表中的每一個元素給變數i

    變數"i"的部分比較多人在剛開始接觸的時候會不理解,其實就是,for會把列表中的每一個元素都抓出來過一次循環,在抓出來的時候,會放到變數這個「容器」裡,而這邊"i"就是我們設定的變數。當然也可以用其他比如a,b,c來做為變數都是沒問題的。

  • 在每次迭代(循環)中,變數i將依次取得'我', '老師', '男同學', '女同學'這四個值,並在for迴圈內部執行
class = ['我', '老師', '男同學', '女同學']
 
for i in class:
    print(i)
    
"""
會返回:
我
老師
男同學
女同學
"""

while v.s for 兩種迴圈語句比較

while for
差別 「無限循環」直到不符合條件 循環一組已知項「一次」
方法 每次都會對某種「條件」下判斷 對一個「序列」裡每個項目逐一處理
適用情況 無限重複一直到某種情況發生 有非常多資料,每筆都要做固定運算

Def 自定義函式

python中已經有非常多的函示可以使用,但如果有些需要用到的函式在裡面沒有,也可以自己設定。會放在這邊講是因為它常用for迴圈作為架構,所以想說講完for再來說。

使用for迴圈寫一個簡單的sum()函式

# 函式示例
def sum_ex(numbers):
    total = 0
    for i in numbers:
        total += i
    return total

# 使用示例
x = [1, 2, 3, 4, 5]
y = sum_ex(x)
print(y)

# 返回結果 15

上一篇
Day14 python語法(再中)-字符串、列表、字典、元組
下一篇
Day16 函式庫Pandas-Series、DataFrame、導入資料、缺失值、合併
系列文
跟我一起在AI的世界裡打怪獸30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言