Ang `truthy` at `falsy` sa Python

Ang `truthy` at `falsy` sa Python

Ipinaliwanag ng artikulong ito ang truthy at falsy sa Python.

YouTube Video

Ang truthy at falsy sa Python

Kahulugan ng truthy at falsy

Sa Python, ang mga bagay na sinusuri sa mga conditional expression ay itinuturing na 'True' o 'False'. Ang truthy ay tumutukoy sa mga bagay na tinataya bilang 'True', at ang falsy ay tumutukoy sa mga bagay na tinataya bilang 'False'. Ang mga pagtayang ito ay madalas ginagamit sa mga conditional branch gaya ng mga if statement o while loop. Gayundin, ang bool() na function ay tumatanggap ng anumang object at ibinabalik ang Boolean value nito.

Falsy (Mga bagay na tinataya bilang False)

Sa Python, ang mga sumusunod na object ay itinuturing na falsy:.

  • False

  • None

  • Mga numerikal na halaga ng zero

    • Halimbawa: 0, 0.0
  • Mga walang lamang sequence type (tulad ng walang lamang list, tuple, o string)

    • Halimbawa: [], (), ""
  • Walang laman na diksyonaryo

    • Halimbawa: {}
  • Walang laman na set

    • Halimbawa: set()

Ang mga bagay na ito ay itinuturing bilang 'falsy' kapag ginamit sa kondisyon ng isang if na pahayag. Halimbawa, maaari kang magsulat ng code na ganito.

1if not []:
2    print("The list is falsy.")
  • Sa code na ito, ang listahan na [] ay walang laman kaya ito ay itinuturing bilang falsy, at ang pahayag na print ay natupad.

Truthy (Mga bagay na tinataya bilang True)

Ang mga object na hindi itinuturing na falsy ay itinuturing na truthy.

  • Mga numero na hindi zero (integer, floating-point numbers)

    • Mga Halimbawa: 1, 3.14, -100
  • Mga uri ng sequence na hindi walang laman (listahan, tuple, string, atbp.)

    • Mga Halimbawa: [1, 2, 3], (1, 2), "Hello"
  • Mga dictionary na hindi walang laman

    • Halimbawa: {"key": "value"}
  • Mga set na hindi walang laman

    • Halimbawa: {1, 2, 3}

Ang mga object na itinuturing na truthy ay magreresulta bilang 'True' kapag ginamit sa kondisyon ng isang if na statement. Halimbawa, maaari kang magsulat ng code na ganito.

1if [1, 2, 3]:
2    print("The list is truthy.")
  • Sa code sa itaas, dahil ang listahan [1, 2, 3] ay hindi walang laman, ito ay itinuturing na truthy at ang print na statement ay isinasagawa.

Pag-evaluate ng Boolean value gamit ang bool() na function

Maari mong alamin ang Boolean value ng mga object gamit ang bool() na function.

 1# Examples of falsy values
 2print("False is", "truthy" if bool(False) else "falsy")
 3print("0 is", "truthy" if bool(0) else "falsy")
 4print('"" is', "truthy" if bool("") else "falsy")
 5print("None is", "truthy" if bool(None) else "falsy")
 6print("[] is", "truthy" if bool([]) else "falsy")
 7
 8# Examples of truthy values
 9print("1 is", "truthy" if bool(1) else "falsy")
10print('"hello" is', "truthy" if bool("hello") else "falsy")
11print('" " (space) is', "truthy" if bool(" ") else "falsy")
12print('"0" is', "truthy" if bool("0") else "falsy")
  • Ipinapakita ng code na ito kung paano sinusuri ang truth value ng iba't ibang halaga. Halimbawa, ang numerong 0 at ang walang laman na string ay itinuturing na False, habang ang isang espasyo o ang string na "0" ay itinuturing na True.

Paggalugad sa paggamit ng truthy at falsy

Sa pamamagitan ng paggamit ng truthy at falsy, mas maikling at mas madaling maunawaan ang pagsulat ng code. Partikular, ang mga pahayag na if ay maaaring suriin nang walang tiyak na paghahambing upang gawing mas maikli. Halimbawa, ang dalawang code sa ibaba ay pareho ng pag-uugali, ngunit ang una ay mas maikli.

1my_list = [1]
2
3# Explicit comparison
4if my_list != []:
5    print("The list is not empty.")
6
7# Using truthy/falsy
8if my_list:
9    print("The list is not empty.")

Sa halimbawa sa itaas, makikita mo na ang my_list ay itinuturing bilang truthy hangga't ito ay hindi walang laman na listahan, na nag-aalis ng pangangailangan para sa tiyak na paghahambing.

Pagdidisenyo gamit ang truthy at falsy

Sa pamamagitan ng mahusay na paggamit ng mga konsepto ng truthy at falsy, maaari mong mapabuti ang pagbabasa at kahusayan ng code. Ang mga ito ay partikular na kapaki-pakinabang sa pagtatakda ng mga default na halaga, pag-check ng bisa ng mga variable, at beripikasyon ng input. Halimbawa, kung inaasahan mong maipasa bilang arguments ang None o isang walang laman na listahan, maaari kang magsulat ng code na ganito.

1def process_data(data=None):
2    data = data or []
3    print(data)
4
5process_data()  # An empty list is used by default.
  • Sa code na ito, kung ang data ay None, isang walang lamang listahan [] ang itinatalaga bilang default na halaga. Sa ganitong paraan, ang paggamit ng truthy at falsy ay nagbibigay-daan sa iyo na magtakda ng default na mga halaga nang maikli.

Mga puntong dapat tandaan upang maiwasan ang hindi inaasahang asal ng programa

Gayunpaman, bagaman ang code na gumagamit ng mga truthy at falsy na value ay maikli at maginhawa, dapat tandaan na maaari itong magdulot ng hindi inaasahang pag-uugali. Halimbawa, sa code na ito, hindi lang kapag ang data ay None, kundi pati na rin kapag ito ay anumang value na na-e-evaluate bilang False, tulad ng walang lamang string o 0, ito ay papalitan ng default na walang lamang listahan []. Para sa kadahilanang ito, kapag kinakailangan ang mas mahigpit na kondisyon, gaya ng pag-initialize lamang kung ang value ay None, inirerekomenda na gumamit ng malinaw na kondisyon gaya ng value is None:. Depende sa sitwasyon, mahalagang magdisenyo ng code na balanse ang pagiging maikli at ang pagiging mahigpit.

1def process_data(data=None):
2    if data is None:
3        data = []
4    print(data)
5
6process_data()   # An empty list is used by default.
7process_data(0)  # 0 is printed because it's not None.
  • Sa code na ito, ang data ay sisimulang gawing walang laman na listahan lamang kung ito ay None, habang ang ibang mga falsy na halaga gaya ng 0 ay iniiwan na ganoon lang.

Pagkontrol ng Boolean value sa mga custom na object

Kahit sa sarili mong mga klase, maari mong kontrolin ang Boolean value ng isang instance sa pamamagitan ng pagdeklara ng __bool__() o __len__().

 1class MyContainer:
 2    def __init__(self, items):
 3        self.items = items
 4
 5    def __len__(self):
 6        return len(self.items)
 7
 8box = MyContainer([])
 9print(bool(box))  # False
10
11box.items.append("item")
12print(bool(box))  # True
  • Sa code na ito, ang __len__() na method ay nagiging dahilan upang ang container ay i-evaluate bilang False kapag ito ay walang laman, at True naman kapag may laman ito.

Konklusyon

Ang mga konsepto ng truthy at falsy sa Python ay napakahalaga sa pagsusulat ng maiiksi at lohikal na conditional expressions at sa paggawa ng mas madaling maintindihan na code. Ang pag-unawa at tamang paggamit ng mga ito ay maaaring lubos na mapabuti ang kakayahang mabasa at pagiging mahusay ng code.

Maaari mong sundan ang artikulo sa itaas gamit ang Visual Studio Code sa aming YouTube channel. Paki-check din ang aming YouTube channel.

YouTube Video