รายการวิธีสตริงสำหรับจัดการอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กใน Python

ธุรกิจ

ประเภทสตริงของ Python (str) มาพร้อมกับวิธีที่สะดวกสำหรับการจัดการอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก คุณสามารถแปลงระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็กและกำหนดกรณี

ข้อมูลต่อไปนี้มีให้ที่นี่

  • การแปลงระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
    • การใช้งานพื้นฐาน
    • การจัดการอักขระขนาดเต็มและครึ่งขนาด
    • str.upper()แปลงตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่
    • str.lower()แปลงตัวอักษรทั้งหมดเป็นตัวพิมพ์เล็ก
    • str.capitalize()แปลงอักษรตัวแรกเป็นตัวพิมพ์ใหญ่และส่วนที่เหลือเป็นตัวพิมพ์เล็ก
    • str.title()แปลงอักษรตัวแรกของคำเป็นตัวพิมพ์ใหญ่และส่วนที่เหลือเป็นตัวพิมพ์เล็ก
    • str.swapcase()แปลงอักษรตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็กและตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่
  • กำหนดตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
    • str.isupper(): กำหนดว่าตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่หรือไม่
    • str.islower(): กำหนดว่าอักขระทั้งหมดเป็นตัวพิมพ์เล็กหรือไม่
    • str.istitle(): ตรวจสอบว่าเป็นกรณีชื่อเรื่องหรือไม่
  • เปรียบเทียบสตริงในลักษณะที่ไม่คำนึงถึงขนาดตัวพิมพ์

การแปลงระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก

การใช้งานพื้นฐาน

ก่อนอื่น ผมจะอธิบายการใช้งานพื้นฐาน เราจะใช้วิธีการ 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
Copied title and URL