Pamalit sa Switch sa Python: Gamitin ang Dictionary at match

1. Pangunahing Kondisyon sa Python

Python ay malawakang ginagamit bilang isang simple ngunit makapangyarihang wika ng programming, at ang mga kondisyonal na sangay ay napakahalaga para kontrolin ang pag-andar ng programa. Sa artikulong ito, tatalakayin namin ang mga pangunahing kaalaman ng mga kondisyon sa Python pati na rin ang mga alternatibo sa switch na pahayag.

Ano ang mga kondisyonal na sangay sa Python?

Ang mga kondisyonal na sangay sa Python ay tumutukoy sa pagkontrol ng daloy ng programa batay sa tiyak na kondisyon. Halimbawa, kapag nais mong magsagawa ng iba’t ibang proseso depende sa halaga ng isang variable, ginagamit ang kondisyonal na sangay. Sa Python, ginagawa ito gamit ang if na pahayag.

Pangunahing Estruktura ng if-elif-else na Pahayag

Isusulat ang mga kondisyonal na sangay sa Python gamit ang if na pahayag tulad ng sumusunod.
x = 10
if x > 5:
    print("x ay mas malaki sa 5")
elif x == 5:
    print("x ay katumbas ng 5")
else:
    print("x ay mas mababa sa 5")
Sa code na ito, kapag ang x ay mas malaki sa 5, ipapakita ang “mas malaki sa 5”; kung hindi, susuriin ang susunod na kondisyon. Sa ganitong paraan, sinusuri ang maraming kondisyon nang sunud-sunod at isinasagawa ang angkop na proseso. Habang dumarami ang mga kondisyon, nagdadagdag ng elif.

Bakit Walang switch na Pahayag sa Python

Maraming wika ng programming ang may switch na pahayag. Ginagamit ito upang mabilis na matukoy kung ang isang variable ay tumutugma sa isa sa ilang posibleng halaga. Subalit, wala ang switch na pahayag sa Python. Ang dahilan ay dahil hinihikayat ng Python ang pagsulat ng “simple at malinaw” na code. Sa pamamagitan lamang ng if-elif-else na pahayag, sapat na ang pagganap ng parehong functionality, kaya hindi na kailangan pang idagdag ang switch na pahayag.

2. Ang dahilan kung bakit walang switch statement sa Python

Ang mga taga-disenyo ng Python ay naghangad na gawing mas simple at madaling maintindihan ang programming sa pamamagitan ng pag-iwas sa kumplikadong syntax. Ang switch statement ay kapaki-pakinabang kapag kailangang mag-branch base sa halaga ng variable, ngunit iniisip ng mga developer ng Python na maaaring palitan ito ng if-elif-else statement.

Pilosopiya ng Python na Nagpapahalaga sa Simpleng Code

Mayroong ideya sa pilosopiya ng Python na “binibigyang-diin ang pagiging simple”. Upang gawing maikli at madaling basahin ang code, pinili ng mga taga-disenyo ng Python na iwasan ang labis na syntax. Ito ay nag-aalis ng mga redundant na konstruksyon na makikita sa ibang programming languages, at sa pamamagitan ng malawak na paggamit ng if-elif-else, nagiging flexible ang paghawak ng mga conditional branches.

Pag-branch ng Kondisyon gamit ang if-elif-else

Sa Python, maaaring makamit ang parehong functionality ng switch gamit ang if-elif-else. Halimbawa, kung nais mag-iba ng gawain batay sa araw ng linggo, maaaring isulat ito tulad ng sumusunod.
day = "Martes"

if day == "Lunes":
    print("Ngayon ay Lunes")
elif day == "Martes":
    print("Ngayon ay Martes")
else:
    print("Hindi wastong araw")
Sa ganitong paraan, madaling ma-branch ang maraming kondisyon, ngunit kapag dumarami ang mga ito, nagiging redundant ang code. Sa ganitong sitwasyon, kailangan maghanap ng mas epektibong paraan.
侍エンジニア塾

3. Pamamaraan ng Kapalit ng switch statement sa Python

Dahil walang switch statement sa Python, kailangan mong gumamit ng ibang mga pamamaraang kapalit upang ipatupad ang conditional branching. Sa artikulong ito, ilalahad namin ang ilang karaniwang kapalit na ginagamit sa Python.

Pamamaraan ng Kapalit gamit ang Dictionary

Bilang kapalit ng switch statement, may paraan na gumagamit ng dictionary (dict) sa Python. Ang dictionary ay binubuo ng mga pares ng susi at halaga, at napaka-kapaki-pakinabang kapag kailangang magsagawa ng iba’t ibang proseso batay sa kondisyon.
def case_one():
    return "Ito ay kaso 1"

def case_two():
    return "Ito ay kaso 2"

switch_dict = {
    1: case_one,
    2: case_two
}

x = 1
print(switch_dict.get(x, lambda: "Hindi wastong kaso")())
Sa ganitong paraan, maaari mong patakbuhin ang mga function batay sa susi gamit ang dictionary. Dahil dito, posible nang magsulat ng mas malinis na code kumpara sa if-elif-else statement.

Mga Bentahe at Paalala sa Paggamit ng Dictionary

Sa paggamit ng dictionary, tumataas ang nababasa ng code at maaaring pamahalaan nang epektibo ang maraming kondisyon. Gayunpaman, dahil ang pamamaraang ito ay limitado lamang sa simpleng pagtugma ng susi at halaga, mas angkop ang if-elif-else statement kapag mas kumplikado ang mga kondisyon.

4. Kapalit gamit ang match statement mula Python 3.10 pataas

Sa Python 3.10 pataas, ipinakilala ang match statement, na nagbibigay ng katangiang halos katulad ng tradisyonal na switch statement. Sa pamamagitan ng tampok na ito, maaaring gumamit ng pattern matching para sa pag-branch ng kondisyon.

Pangunahing gamit ng match statement

match statement ay isang syntax na nagkokompara ng maraming kaso batay sa tinukoy na halaga, at isinasagawa ang unang tumugmang kaso. Katulad ito ng switch statement sa ibang wika.
def get_grade(score):
    match score:
        case 90 <= score <= 100:
            return "A"
        case 80 <= score < 90:
            return "B"
        case _:
            return "F"

grade = get_grade(85)
print(grade)
Sa code na ito, nagbabalik ng angkop na grado batay sa halaga ng score. Ang match statement ay napakalakas na tool dahil maaari nitong isulat nang maikli ang maraming kondisyon.
年収訴求

5. Gabay sa Pagpili ng Tamang Paraan

Ang if-elif-else, dictionary type, at match na pahayag na ipinakilala hanggang dito ay may kani-kanilang mga kalamangan. Ipinaliwanag dito kung paano dapat piliin ang mga pamamaraang ito batay sa mga totoong senaryo.

Kapag Kaunting Kondisyon

Kapag kaunti ang mga kondisyon, ang paggamit ng pahayag na if-elif-else ay ang pinakamadali at pinakaepektibo. Lalo na sa maliliit na script o simpleng pag-branch ng kondisyon, ang pamamaraang ito ang pinakamainam.

Kapag Maraming Kondisyon

Kapag maraming kondisyon o nais mong magpatakbo ng function, epektibo ang paggamit ng dictionary. Sa pamamagitan ng dictionary, mas madaling pamahalaan ang mga kondisyon at napapabuti ang nababasa ng code.

Kapag Kailangan ng Kumplikadong Kondisyon o Pattern Matching

Kung gumagamit ka ng Python 3.10 o mas bago, ang paggamit ng pahayag na match ay nagpapadali sa paghawak ng kumplikadong pag-branch ng kondisyon. Lalo na kapag kailangan ng pattern matching, ito ang pinakaangkop na paraan.