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
- Halimbawa:
-
Mga walang lamang sequence type (tulad ng walang lamang list, tuple, o string)
- Halimbawa:
[]
,()
,""
- Halimbawa:
-
Walang laman na diksyonaryo
- Halimbawa:
{}
- Halimbawa:
-
Walang laman na set
- Halimbawa:
set()
- Halimbawa:
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 bilangfalsy
, at ang pahayag naprint
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 Halimbawa:
-
Mga uri ng sequence na hindi walang laman (listahan, tuple, string, atbp.)
- Mga Halimbawa:
[1, 2, 3]
,(1, 2)
,"Hello"
- Mga Halimbawa:
-
Mga dictionary na hindi walang laman
- Halimbawa:
{"key": "value"}
- Halimbawa:
-
Mga set na hindi walang laman
- Halimbawa:
{1, 2, 3}
- Halimbawa:
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 natruthy
at angprint
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 naFalse
, habang ang isang espasyo o ang string na"0"
ay itinuturing naTrue
.
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
ayNone
, isang walang lamang listahan[]
ang itinatalaga bilang default na halaga. Sa ganitong paraan, ang paggamit ngtruthy
atfalsy
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 ayNone
, habang ang ibang mga falsy na halaga gaya ng0
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 bilangFalse
kapag ito ay walang laman, atTrue
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.