ประเภทสตริงของ Python (str) มาพร้อมกับวิธีที่สะดวกสำหรับการจัดการอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก คุณสามารถแปลงระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็กและกำหนดกรณี
ข้อมูลต่อไปนี้มีให้ที่นี่
- การแปลงระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
- การใช้งานพื้นฐาน
- การจัดการอักขระขนาดเต็มและครึ่งขนาด
str.upper()
แปลงตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่str.lower()
แปลงตัวอักษรทั้งหมดเป็นตัวพิมพ์เล็กstr.capitalize()
แปลงอักษรตัวแรกเป็นตัวพิมพ์ใหญ่และส่วนที่เหลือเป็นตัวพิมพ์เล็กstr.title()
แปลงอักษรตัวแรกของคำเป็นตัวพิมพ์ใหญ่และส่วนที่เหลือเป็นตัวพิมพ์เล็กstr.swapcase()
แปลงอักษรตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็กและตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่
- กำหนดตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
str.isupper()
: กำหนดว่าตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่หรือไม่str.islower()
: กำหนดว่าอักขระทั้งหมดเป็นตัวพิมพ์เล็กหรือไม่str.istitle()
: ตรวจสอบว่าเป็นกรณีชื่อเรื่องหรือไม่
- เปรียบเทียบสตริงในลักษณะที่ไม่คำนึงถึงขนาดตัวพิมพ์
- การแปลงระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
- การใช้งานพื้นฐาน
- การจัดการอักขระขนาดเต็มและครึ่งขนาด
- str.upper(): แปลงตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่
- str.lower(): แปลงอักขระทั้งหมดเป็นตัวพิมพ์เล็ก
- str.capitalize(): แปลงอักษรตัวแรกเป็นตัวพิมพ์ใหญ่ ส่วนที่เหลือเป็นตัวพิมพ์เล็ก
- str.title(): แปลงอักษรตัวแรกของคำเป็นตัวพิมพ์ใหญ่และส่วนที่เหลือเป็นตัวพิมพ์เล็ก
- str.swapcase(): แปลงตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็ก, ตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่
- กำหนดตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
- เปรียบเทียบสตริงในลักษณะที่ไม่คำนึงถึงขนาดตัวพิมพ์
การแปลงระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
การใช้งานพื้นฐาน
ก่อนอื่น ผมจะอธิบายการใช้งานพื้นฐาน เราจะใช้วิธีการ upper() เพื่อทำให้ตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่เป็นตัวอย่าง แต่วิธีการอื่นก็เช่นเดียวกัน
เพื่อความสะดวก เราเขียน “การแปลง” แต่ใน Python วัตถุประเภทสตริง (str) ไม่สามารถอัปเดตได้ ดังนั้นสตริงดั้งเดิม (s_org ในตัวอย่าง) จึงไม่เปลี่ยนแปลง
s_org = 'pYThon proGramminG laNguAge' print(s_org.upper()) # PYTHON PROGRAMMING LANGUAGE print(s_org) # pYThon proGramminG laNguAge
หากคุณต้องการใช้สตริงที่แปลงในภายหลัง คุณสามารถเก็บไว้ในตัวแปรใหม่ได้ดังนี้
s_new = s_org.upper() print(s_new) # PYTHON PROGRAMMING LANGUAGE
นอกจากนี้ยังสามารถเขียนทับตัวแปรเดิมได้อีกด้วย
s_org = s_org.upper() print(s_org) # PYTHON PROGRAMMING LANGUAGE
การจัดการอักขระขนาดเต็มและครึ่งขนาด
หากอักขระต้องคำนึงถึงขนาดตัวพิมพ์ เช่น ตัวอักษร อักขระนั้นจะถูกแปลงเป็นอักขระแบบไบต์เดี่ยวและแบบไบต์คู่
อักขระที่ไม่คำนึงถึงขนาดตัวพิมพ์ เช่น ตัวเลขและตัวอักษรจีน ยังคงไม่เปลี่ยนแปลง ตัวอย่างสำหรับ upper() แต่วิธีการอื่นก็เช่นเดียวกัน
s_org = 'Pyhon Python 123' print(s_org.upper()) # PYHON PYTHON 123
str.upper(): แปลงตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่
s_org = 'pYThon proGramminG laNguAge' print(s_org.upper()) # PYTHON PROGRAMMING LANGUAGE
str.lower(): แปลงอักขระทั้งหมดเป็นตัวพิมพ์เล็ก
s_org = 'pYThon proGramminG laNguAge' print(s_org.lower()) # python programming language
str.capitalize(): แปลงอักษรตัวแรกเป็นตัวพิมพ์ใหญ่ ส่วนที่เหลือเป็นตัวพิมพ์เล็ก
s_org = 'pYThon proGramminG laNguAge' print(s_org.capitalize()) # Python programming language
str.title(): แปลงอักษรตัวแรกของคำเป็นตัวพิมพ์ใหญ่และส่วนที่เหลือเป็นตัวพิมพ์เล็ก
การแปลงเป็นกรณีที่เรียกว่า
s_org = 'pYThon proGramminG laNguAge' print(s_org.title()) # Python Programming Language
str.swapcase(): แปลงตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็ก, ตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่
สลับอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
s_org = 'pYThon proGramminG laNguAge' print(s_org.swapcase()) # PytHON PROgRAMMINg LAnGUaGE
กำหนดตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
ในตัวอย่างต่อไปนี้ เมธอดจะถูกเรียกโดยตรงจากตัวอักษรสตริง เช่น ‘python’ แต่ก็เหมือนกันเมื่อเก็บไว้ในตัวแปรเช่นเดียวกับในตัวอย่างก่อนหน้า
str.isupper(): ตรวจสอบว่าตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่หรือไม่
isupper() คืนค่า true หากมีอักขระที่คำนึงถึงขนาดตัวพิมพ์อย่างน้อยหนึ่งตัวและทั้งหมดเป็นตัวพิมพ์ใหญ่และเป็นเท็จ
print('PYTHON'.isupper()) # True print('Python'.isupper()) # False
หากอักขระเป็นแบบตรงตามตัวพิมพ์ อักขระแบบไบต์คู่จะถูกตัดสิน
print('PYTHON'.isupper()) # True
หากรวมอักขระที่คำนึงถึงขนาดตัวพิมพ์แม้เพียงตัวเดียว อักขระที่ไม่คำนึงถึงขนาดตัวพิมพ์จะถูกละเว้น แต่ถ้าไม่มีอักขระที่คำนึงถึงขนาดตัวพิมพ์รวมอยู่ด้วย (อักขระทั้งหมดไม่คำนึงถึงขนาดตัวพิมพ์) การตัดสินใจจะเป็นเท็จ
print('PYTHON 123'.isupper()) # True print('123'.isupper()) # False
str.islower(): กำหนดว่าอักขระทั้งหมดเป็นตัวพิมพ์เล็กหรือไม่
islower() คืนค่า จริง หากมีอักขระที่คำนึงถึงขนาดตัวพิมพ์อย่างน้อยหนึ่งตัวและทั้งหมดเป็นตัวพิมพ์เล็กและเป็นเท็จ
print('python'.islower()) # True print('Python'.islower()) # False
หากอักขระเป็นแบบตรงตามตัวพิมพ์ อักขระแบบไบต์คู่จะถูกตัดสิน
print('python'.islower()) # True
หากรวมอักขระที่คำนึงถึงขนาดตัวพิมพ์แม้เพียงตัวเดียว อักขระที่ไม่คำนึงถึงขนาดตัวพิมพ์จะถูกละเว้น แต่ถ้าไม่มีอักขระที่คำนึงถึงขนาดตัวพิมพ์รวมอยู่ด้วย (อักขระทั้งหมดไม่คำนึงถึงขนาดตัวพิมพ์) การตัดสินใจจะเป็นเท็จ
print('python 123'.islower()) # True print('123'.islower()) # False
str.istitle(): ตรวจสอบว่ากรณีเป็นกรณีที่มีชื่อหรือไม่
istitle() คืนค่า จริง หากสตริงเป็นตัวพิมพ์ใหญ่ (อักษรตัวแรกของคำเป็นตัวพิมพ์ใหญ่ ส่วนที่เหลือเป็นตัวพิมพ์เล็ก) มิฉะนั้น เท็จ
print('Python Programming Language'.istitle()) # True print('PYTHON Programming Language'.istitle()) # False
หากมีอักขระที่ไม่คำนึงถึงขนาดตัวพิมพ์ จะเป็นเท็จหากอักขระที่ไม่คำนึงถึงตัวพิมพ์นำหน้าด้วยตัวอักษรพิมพ์เล็ก
print('★Python Programming Language'.istitle()) # True print('Python★ Programming Language'.istitle()) # True print('Py★thon Programming Language'.istitle()) # False
โปรดทราบว่ามีสตริงไม่มากเหมือนตัวอย่างข้างต้น แต่การรวมตัวเลขในตัวเลขลำดับและกรณีอื่นๆ นั้นทำได้จริง
print('The 1st Team'.istitle()) # False print('The 1St Team'.istitle()) # True
หากไม่มีอักขระที่คำนึงถึงขนาดตัวพิมพ์ (อักขระทั้งหมดไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) เท็จ
print('123'.istitle()) # False
เปรียบเทียบสตริงในลักษณะที่ไม่คำนึงถึงขนาดตัวพิมพ์
เมื่อเปรียบเทียบสตริง ตัวพิมพ์ใหญ่และตัวพิมพ์เล็กต่างกันจะไม่ถือว่าเท่ากัน
s1 = 'python' s2 = 'PYTHON' print(s1 == s2) # False
หากคุณต้องการเปรียบเทียบโดยคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ คุณสามารถใช้ upper() หรือ lower() เพื่อแปลงค่าทั้งสองและเปรียบเทียบได้
print(s1.upper() == s2.upper()) # True print(s1.lower() == s2.lower()) # True print(s1.capitalize() == s2.capitalize()) # True print(s1.title() == s2.title()) # True