Python `truthy` dan `falsy`
Artikel ini menerangkan tentang Python truthy
dan falsy
.
YouTube Video
Python truthy
dan falsy
Definisi truthy
dan falsy
Dalam Python, objek yang dinilai dalam ungkapan bersyarat dianggap sebagai 'True' atau 'False'. Truthy
merujuk kepada objek yang dinilai sebagai 'True', dan falsy
merujuk kepada objek yang dinilai sebagai 'False'. Penilaian ini sering digunakan dalam cabang bersyarat seperti pernyataan if
atau gelung while
. Selain itu, fungsi bool()
menerima sebarang objek dan mengembalikan nilai Boolean-nya.
Falsy
(Objek yang dinilai sebagai False)
Dalam Python, objek-objek berikut dianggap sebagai falsy
:.
-
False
-
None
-
Nilai sifar numerik
- Contoh:
0
,0.0
- Contoh:
-
Jenis jujukan kosong (seperti senarai kosong, tuple kosong, atau rentetan kosong)
- Contoh:
[]
,()
,""
- Contoh:
-
Kamus kosong
- Contoh:
{}
- Contoh:
-
Set kosong
- Contoh:
set()
- Contoh:
Objek-objek ini dinilai sebagai 'falsy' apabila digunakan dalam syarat penyataan if
. Sebagai contoh, anda boleh menulis kod seperti ini.
1if not []:
2 print("The list is falsy.")
- Dalam kod ini, senarai
[]
adalah kosong, jadi ia dinilai sebagaifalsy
, dan penyataanprint
dijalankan.
Truthy
(Objek yang dinilai sebagai True)
Objek yang tidak dianggap falsy
dianggap sebagai truthy
.
-
Nombor bukan sifar (integer, nombor titik terapung)
- Contoh:
1
,3.14
,-100
- Contoh:
-
Jenis urutan yang tidak kosong (senarai, tuple, rentetan, dll.)
- Contoh:
[1, 2, 3]
,(1, 2)
,"Hello"
- Contoh:
-
Kamus yang tidak kosong
- Contoh:
{"key": "value"}
- Contoh:
-
Set yang tidak kosong
- Contoh:
{1, 2, 3}
- Contoh:
Objek yang dianggap truthy
akan dievaluasi sebagai 'True' apabila digunakan dalam syarat arahan if
. Sebagai contoh, anda boleh menulis kod seperti ini.
1if [1, 2, 3]:
2 print("The list is truthy.")
- Dalam kod di atas, kerana senarai
[1, 2, 3]
tidak kosong, ia dievaluasi sebagaitruthy
dan arahanprint
akan dilaksanakan.
Menilai nilai Boolean dengan fungsi bool()
Anda boleh menilai nilai Boolean objek dengan menggunakan fungsi bool()
.
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")
- Kod ini menunjukkan bagaimana nilai kebenaran bagi pelbagai nilai dinilai. Sebagai contoh, nilai berangka
0
dan rentetan kosong dianggapFalse
, manakala ruang atau rentetan"0"
dianggapTrue
.
Menggunakan truthy
dan falsy
Dengan menggunakan truthy
dan falsy
, kod boleh ditulis dengan lebih ringkas dan intuitif. Khususnya, penyataan if
sering boleh dinilai tanpa perbandingan eksplisit untuk menjadikannya lebih singkat. Sebagai contoh, dua kod berikut berfungsi dengan cara yang sama, tetapi yang pertama lebih ringkas.
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.")
Dalam contoh di atas, anda dapat melihat bahawa my_list
dinilai sebagai truthy
selagi ia bukan senarai kosong, yang menghapuskan keperluan untuk perbandingan eksplisit.
Mereka bentuk dengan truthy
dan falsy
Dengan menggunakan konsep truthy
dan falsy
secara berkesan, anda dapat meningkatkan kebolehbacaan dan kecekapan kod. Ia sangat berguna untuk menetapkan nilai lalai, memeriksa kesahihan pembolehubah, dan pengesahan input. Sebagai contoh, jika anda menjangka None
atau senarai kosong akan dihantar sebagai argumen, anda boleh menulis kod seperti ini.
1def process_data(data=None):
2 data = data or []
3 print(data)
4
5process_data() # An empty list is used by default.
- Dalam kod ini, jika
data
adalahNone
, senarai kosong[]
akan ditetapkan sebagai nilai lalai. Dengan cara ini, penggunaantruthy
danfalsy
membolehkan anda menetapkan nilai lalai dengan ringkas.
Perkara yang perlu diberi perhatian untuk mengelakkan tingkah laku yang tidak diingini
Namun, walaupun kod yang menggunakan nilai truthy
dan falsy
boleh menjadi ringkas dan mudah, anda perlu sedar bahawa ia mungkin menyebabkan tingkah laku yang tidak diingini. Sebagai contoh, dalam kod ini, bukan sahaja apabila data
adalah None
, tetapi juga jika ia adalah sebarang nilai yang dievaluasi sebagai False
, seperti rentetan kosong atau 0
, ia akan digantikan dengan senarai kosong []
sebagai lalai. Oleh sebab itu, apabila syarat yang lebih ketat diperlukan, seperti inisialisasi hanya apabila nilai adalah None
, adalah disarankan untuk menggunakan syarat jelas seperti value is None:
. Bergantung pada situasi, adalah penting untuk mereka bentuk dengan mengambil kira keseimbangan antara ringkasan dan ketelitian.
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.
- Dalam kod ini,
data
akan dimulakan sebagai senarai kosong hanya jika ia adalahNone
, manakala nilai-nilai palsu lain seperti0
akan dibiarkan seperti sedia ada.
Mengawal nilai Boolean dalam objek tersuai
Malah dalam kelas anda sendiri, anda boleh mengawal nilai Boolean satu instans dengan mendefinisikan __bool__()
atau __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
- Dalam kod ini, kaedah
__len__()
menyebabkan bekas dinilai sebagaiFalse
apabila ia kosong, danTrue
apabila ia mempunyai elemen.
Kesimpulan
Konsep truthy
dan falsy
dalam Python sangat penting untuk menulis ungkapan bersyarat dengan ringkas dan menjadikan kod lebih intuitif. Memahami dan menggunakan konsep ini dengan betul dapat meningkatkan keterbacaan dan kecekapan kod dengan ketara.
Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.