ในบทช่วยสอนนี้ เราจะอภิปรายเมธอดสตริง str.casefold() ซึ่งไม่รับอาร์กิวเมนต์ ค่าที่คืนคือสตริงที่เหมาะสมสำหรับการเปรียบเทียบแบบไม่สนใจตัวพิมพ์เล็ก-ใหญ่ (caseless comparisons)
การเปรียบเทียบแบบไม่สนใจตัวพิมพ์เล็ก-ใหญ่คืออะไร? ตัวอย่างเช่น ตัวอักษรเยอรมันตัวพิมพ์เล็ก ß เทียบเท่ากับ ss เมธอด str.casefold() จะคืน ß เป็น ss และแปลงตัวอักษรทั้งหมดเป็นตัวพิมพ์เล็ก
ตัวอย่าง
# กำหนดสตริง string = "TUTORIALSPOINT" # พิมพ์เวอร์ชัน casefold() ของสตริง print(string.casefold())
ผลลัพธ์
ถ้ารันโปรแกรมข้างต้น จะได้ผลลัพธ์ดังนี้:
tutorialspoint
มาดูตัวอย่างที่การเปรียบเทียบแบบไม่สนใจตัวพิมพ์เล็ก-ใหญ่ทำงาน หากเปรียบเทียบสตริง ßtutorialspoint กับ sstutorialspoint โดยตรง จะได้ False มาดูโค้ด
ตัวอย่าง
# กำหนดสตริง string = "ßtutorialspoint" second_string = "sstutorialspoint" # เปรียบเทียบสองสตริง print(string == second_string)
ผลลัพธ์
ตามที่คาดไว้ ผลลัพธ์ของโปรแกรมข้างต้นคือ False
False
ตอนนี้เปรียบเทียบเดียวกันแต่ใช้เมธอด str.casefold()
ตัวอย่าง
# กำหนดสตริง string = "ßtutorialspoint" second_string = "sstutorialspoint" # เปรียบเทียบสองสตริง print(string.casefold() == second_string)
ผลลัพธ์
ถ้ารันโค้ดข้างต้น จะได้ผลลัพธ์ดังนี้:
True
สรุป
เมธอด casefold() แข็งแกรกกว่า lower() สำหรับการเปรียบเทียบสตริงระหว่างภาษาต่างๆ โดยเฉพาะตัวอักษรพิเศษเช่น ß