Falsy คืออะไร
ใน Python ค่าทุกค่าสามารถถูกตีความว่าเป็น Boolean ได้ ไม่ว่าจะเป็นตัวเลข, สตริง, ลิสต์, หรือวัตถุอื่นๆ เมื่อค่าเหล่านี้ถูกใช้ในบริบทที่ต้องการ Boolean (เช่น ในเงื่อนไขของ if หรือ while หรือในการดำเนินการทางตรรกะเช่น and, or, not) Python จะทำการแปลงค่าเหล่านั้นให้เป็น True หรือ False โดยอัตโนมัติ
- Falsy: ค่าบางค่าที่ถูกตีความว่าเป็น False
การทำความเข้าใจ Falsy ช่วยให้คุณเขียนโค้ดได้กระชับขึ้นและหลีกเลี่ยงข้อผิดพลาดที่อาจเกิดขึ้นได้
ค่า Falsy ใน Python มีอะไรบ้าง
ใน Python มีค่า Falsy หลักๆ ดังต่อไปนี้
- None ค่าที่แสดงถึง "ไม่มีค่า" หรือ "ว่างเปล่า"
False ค่า Boolean ชนิด False ซึ่งเป็น Falsy โดยธรรมชาติ
0 (integer)
0.0 (float)
0j (complex number)
'' (empty string)
"" (empty string)
[] (empty list)
() (empty tuple)
{} (empty dictionary)
set() (empty set)
range(0) (empty range)
โค้ด: เลือกทั้งหมด
values = [
None,
False,
0,
0.0,
0j,
'',
"",
[],
(),
{},
set(),
range(0)
]
for i, value in enumerate(values, start=1):
if value == True:
print(f"ค่าลำดับที่ {i} ({repr(value)}) เป็น Truthy")
else:
print(f"ค่าลำดับที่ {i} ({repr(value)}) เป็น Falsy")
การเข้าใจแนวคิด Falsy มีประโยชน์อย่างมากในการเขียนโค้ด Python
1 การเขียนโค้ดที่กระชับ:
คุณสามารถตรวจสอบว่าลิสต์ว่างเปล่าหรือสตริงว่างเปล่าได้โดยตรงในเงื่อนไข if โดยไม่ต้องเปรียบเทียบกับ [] หรือ ''
โค้ด: เลือกทั้งหมด
my_list = []
if not my_list: # ตรวจสอบว่าเป็น Falsy
print("List is empty")
บ่อยครั้งที่ใช้ในฟังก์ชันหรือเมื่อรับ input ที่อาจจะไม่มีค่า
โค้ด: เลือกทั้งหมด
def process_data(data):
if data:
print("Processing data:", data)
else:
print("No data to process.")
process_data([])
process_data(None)
process_data("abc")
แม้ว่า None จะเป็น Falsy แต่บางครั้งคุณอาจต้องการตรวจสอบ None อย่างชัดเจน แยกต่างหากจากการตรวจสอบค่าว่างของคอลเลกชัน เพื่อความชัดเจนของโค้ด
โค้ด: เลือกทั้งหมด
# บางครั้งอาจต้องการแยก None ออกจาก empty list
my_var = []
if my_var is None:
print("It's None")
elif not my_var:
print("It's empty")
แนวคิดของ "Falsy" ใน Python เป็นคุณสมบัติที่ทรงพลังและทำให้โค้ดมีความยืดหยุ่น การทำความเข้าใจว่าค่าใดบ้างที่ถูกมองว่าเป็นเท็จในบริบทของ Boolean (None, 0, "", list [], dict{}, tuple(), set()) จะช่วยให้คุณเขียนโค้ด Python ได้อย่างมีประสิทธิภาพมากขึ้น ทั้งในด้านความกระชับและความสามารถในการอ่าน ทำให้โค้ดได้สั้นลงและหลีกเลี่ยงการเปรียบเทียบที่ซ้ำซ้อน
อ้างอิง
- https://www.mindphp.com/บทเรียนออนไลน์/ ... ments.html
- viewtopic.php?t=107200
- https://www.mindphp.com/คู่มือ/73-คืออะ ... ออะไร.html
- https://www.mindphp.com/บทเรียนออนไลน์/ ... -type.html
- https://www.mindphp.com/developer/tips- ... ython.html