ในการเขียนโปรแกรม สตริงทำหน้าที่เป็นพื้นฐานสำหรับการทำงานกับข้อมูลที่เป็นข้อความ Python เป็นภาษาการเขียนโปรแกรมอเนกประสงค์และใช้กันอย่างแพร่หลาย นำเสนอเครื่องมือและเทคนิคอันทรงพลังมากมายสำหรับการจัดการ การจัดรูปแบบ และการใช้สตริงอย่างเต็มศักยภาพ

ในบทความนี้ เราจะเริ่มสำรวจสตริงใน Python ทีละขั้นตอน เราจะเริ่มต้นด้วยพื้นฐาน ครอบคลุมแก่นแท้ของสตริง ความสำคัญของสตริงในการเขียนโปรแกรม และวิธีการสร้างบล็อคพื้นฐานของการแสดงข้อความ

สตริงคืออะไร?

สตริงคือลำดับของอักขระที่อยู่ภายในเครื่องหมายคำพูดเดี่ยว ('...') เครื่องหมายคำพูดคู่ ("...") หรือเครื่องหมายคำพูดสาม ('''...''' หรือ """...""") อักขระสามารถประกอบด้วยตัวอักษร ตัวเลข สัญลักษณ์ และช่องว่าง สตริงสามารถแสดงอะไรก็ได้ตั้งแต่อักขระแต่ละตัวไปจนถึงทั้งย่อหน้าของข้อความ

สตริงมีบทบาทสำคัญในการเขียนโปรแกรมเนื่องจากช่วยให้เราทำงานกับข้อมูลที่เป็นข้อความได้ ใช้เพื่อแสดงและจัดการคำ ประโยค ย่อหน้า เนื้อหาไฟล์ และอื่นๆ สตริงเป็นพื้นฐานสำหรับการสร้างอินเทอร์เฟซผู้ใช้ การประมวลผลอินพุตและเอาต์พุต การจัดการข้อมูล การวิเคราะห์ข้อความ และอื่นๆ อีกมากมาย

ใน Python สตริงไม่เพียงแต่ใช้เพื่อแสดงข้อความธรรมดาเท่านั้น แต่ยังใช้กับงานที่ซับซ้อน เช่น นิพจน์ทั่วไป การจัดการไฟล์ และอื่นๆ อีกมากมาย การทำความเข้าใจวิธีสร้าง จัดการ และจัดรูปแบบสตริงเป็นทักษะพื้นฐานสำหรับโปรแกรมเมอร์ Python

การสร้างสตริง

  • เครื่องหมายคำพูดเดี่ยวและคู่สำหรับการสร้างสตริง

คุณสามารถสร้างสตริงโดยใช้ทั้งเครื่องหมายคำพูดเดี่ยวและเครื่องหมายคำพูดคู่ ซึ่งจะทำให้คุณสามารถเลือกประเภทของเครื่องหมายคำพูดที่ไม่ขัดแย้งกับอักขระภายในสตริงได้

single_quoted = 'This is a single-quoted string.' 
double_quoted = "This is a double-quoted string."

หากสตริงมีเครื่องหมายอะพอสทรอฟี คุณควรใส่เครื่องหมายคำพูดคู่ดังนี้:

text_with_apostrophe = "It's a Python string"
  • สตริงที่ยกมาสามบรรทัดสำหรับข้อความหลายบรรทัด:

สตริงที่มีเครื่องหมายคำพูดสามอันใช้เพื่อสร้างสตริงหลายบรรทัด พวกเขาสามารถปิดล้อมด้วยเครื่องหมายคำพูดเดี่ยวสามตัวหรือเครื่องหมายคำพูดคู่สามตัวก็ได้

  multiline_single = '''This is a
  multiline
  single-quoted string.'''
  multiline_double = """This is a
  multiline
  double-quoted string."""
  • การหลีกอักขระภายในสตริง:

บางครั้งคุณจำเป็นต้องใส่อักขระที่มีความหมายพิเศษในสตริง เมื่อต้องการทำเช่นนี้ คุณสามารถใช้ลำดับหลีกได้โดยเพิ่มเครื่องหมายแบ็กสแลชหน้าอักขระพิเศษ

escaped_string = "This string contains a newline:\nSecond line starts here."

ในกรณีที่คุณจำเป็นต้องรวมแบ็กสแลชตามตัวอักษร คุณสามารถหลีกเลี่ยงได้โดยใช้แบ็กสแลชอื่น:

backslash_string = "To include a backslash: \\"

คุณยังสามารถใช้ลำดับหลีกสำหรับอักขระพิเศษอื่นๆ เช่น แท็บ (\t) เครื่องหมายคำพูด (\" หรือ \') และอื่นๆ

การดำเนินการสตริง

การต่อข้อมูล

การต่อข้อมูลหมายถึงกระบวนการรวมสองสตริงขึ้นไปเพื่อสร้างสตริงเดียวที่ยาวขึ้น ซึ่งสามารถทำได้โดยใช้ตัวดำเนินการ +

string1 = "Hello, "
string2 = "world!"
result = string1 + string2
print(result)  # Output: "Hello, world!"

คุณยังสามารถเชื่อมสตริงเข้ากับตัวแปรได้:

name = "Alice"
greeting = "Hello, " + name + "!"
print(greeting)  # Output: "Hello, Alice!"

การทำซ้ำ

คุณสามารถทำซ้ำสตริงได้หลายครั้งโดยใช้ตัวดำเนินการ *

word = "Hello"
repeated_word = word * 3
print(repeated_word)  # Output: HelloHelloHello

วิธีการสตริง

Python มีวิธีการสตริงในตัวที่หลากหลายเพื่อดำเนินการกับสตริง นี่คือตัวอย่างบางส่วน:

  • len(): ส่งกลับความยาวของสตริง
  • lower(): แปลงสตริงเป็นตัวพิมพ์เล็ก
  • upper(): แปลงสตริงเป็นตัวพิมพ์ใหญ่
  • capitalize(): ทำให้อักขระตัวแรกของสตริงเป็นตัวพิมพ์ใหญ่
text = "Hello, World!"

length = len(text)
lowercase_text = text.lower()
uppercase_text = text.upper()
capitalized_text = text.capitalize()

print("Length:", length)
print("Lowercase:", lowercase_text)
print("Uppercase:", uppercase_text)
print("Capitalized:", capitalized_text)
## Output
## Length: 13
## Lowercase: hello, world!
## Uppercase: HELLO, WORLD!
## Capitalized: Hello, world!

การทำดัชนีสตริงและการแบ่งส่วน

การเข้าถึงอักขระแต่ละตัวโดยใช้การจัดทำดัชนี: อักขระแต่ละตัวในสตริงมีดัชนีที่สอดคล้องกัน เริ่มต้นจาก 0 สำหรับอักขระตัวแรก คุณสามารถเข้าถึงอักขระแต่ละตัวได้โดยใช้วงเล็บเหลี่ยมและดัชนี

text = "Hello, World!"

first_character = text[0]  # 'H'
second_character = text[7]  # 'W'

การแบ่งส่วนเพื่อแยกส่วนของสตริง: การแบ่งส่วนทำให้คุณสามารถแยกส่วนของสตริงได้ ดำเนินการโดยใช้ไวยากรณ์ [start:stop] โดยที่ start คือดัชนีของอักขระตัวแรกที่จะรวมไว้ และ stop คือดัชนีของอักขระที่อยู่หลังอักขระตัวสุดท้ายที่คุณต้องการ

text = "Hello, World!"

substring = text[7:12]  # 'World'

การจัดทำดัชนีเชิงลบสำหรับการนับจากจุดสิ้นสุด: Python ยังรองรับการจัดทำดัชนีเชิงลบ โดยที่ -1 อ้างถึงอักขระตัวสุดท้าย -2 ถึงอักขระตัวที่สองถึงสุดท้าย และอื่นๆ

text = "Hello, World!"

last_character = text[-1]  # '!'
second_last_character = text[-2]  # 'd'

วิธีการสตริง

strip(), lstrip() และ rstrip() : วิธีการเหล่านี้ใช้เพื่อลบช่องว่างนำหน้าและต่อท้าย (รวมถึงช่องว่าง แท็บ และอักขระขึ้นบรรทัดใหม่) ออกจากสตริง

text = "   Hello, World!   "

stripped = text.strip()  # Removes leading and trailing whitespace
left_stripped = text.lstrip()  # Removes leading whitespace
right_stripped = text.rstrip()  # Removes trailing whitespace

split() — การแบ่งสตริงออกเป็นรายการสตริงย่อย: เมธอด split() แบ่งสตริงออกเป็นรายการสตริงย่อยตามตัวคั่นที่ระบุ

sentence = "Hello, how are you today?"

words = sentence.split()  # Splits on spaces by default
comma_separated = sentence.split(", ")

print("Words:", words)
print("Comma Separated:", comma_separated)
# output
## Words: ['Hello,', 'how', 'are', 'you', 'today?']
## Comma Separated: ['Hello', 'how are you today?']

join() — การรวมรายการสตริงให้เป็นสตริงเดียว: เมธอด join() รับรายการสตริงและรวมเข้าด้วยกันเป็นสตริงเดียวโดยใช้ตัวคั่นที่ระบุ

words = ["Hello", "how", "are", "you", "today?"]

combined_sentence = " ".join(words)  # Joins with space separator
comma_joined = ", ".join(words)  # Joins with comma and space separator

print("Combined Sentence:", combined_sentence)
print("Comma Joined:", comma_joined)
# Output
# Combined Sentence: Hello how are you today?
# Comma Joined: Hello, how, are, you, today?

แทนที่() — การแทนที่สตริงย่อยเฉพาะ: วิธีการ replace() จะแทนที่การเกิดขึ้นของสตริงย่อยที่ระบุด้วยสตริงย่อยอื่น

text = "Hello, World!"

replaced = text.replace("Hello", "Hi")

print("Original Text:", text)
print("Replaced Text:", replaced)

# Output
# Original Text: Hello, World!
# Replaced Text: Hi, World!

การจัดรูปแบบสตริง

การใช้ f-strings สำหรับการแก้ไขสตริง: สตริง F (ตัวอักษรสตริงที่จัดรูปแบบแล้ว) เป็นวิธีที่กระชับในการฝังนิพจน์ภายในตัวอักษรสตริง โดยใช้เครื่องหมายปีกกา {} นิพจน์ภายในเครื่องหมายปีกกาจะถูกประเมิน และผลลัพธ์จะถูกแทรกลงในสตริง

name = "Alice"
age = 20
message = f"My name is {name} and I am {age} years old."
print(message) ## My name is Alice and I am 20 years old.

เมธอด format() สำหรับสตริงที่จัดรูปแบบ: เมธอด format() ช่วยให้คุณสร้างสตริงที่จัดรูปแบบแล้วโดยใช้ตัวยึดตำแหน่ง {} จากนั้นเรียกใช้เมธอด format() บนสตริง

name = "Bob"
score = 85
result = "Hi, my name is {} and I scored {} on the test.".format(name, score)
print(result) ## Hi, my name is Bob and I scored 85 on the test.

% การจัดรูปแบบ (การจัดรูปแบบแบบเก่า): ตัวดำเนินการ % สามารถใช้สำหรับการจัดรูปแบบสตริงได้เช่นกัน เป็นวิธีการเก่าและคล้ายกับการจัดรูปแบบสตริงแบบ C

product = "apple"
price = 0.5
formatted_string = "A %s costs $%.2f." % (product, price)
print(formatted_string)

การดำเนินการสตริงและการเปรียบเทียบ

การตรวจสอบการมีอยู่ของสตริงย่อยด้วย in คำหลัก: คำหลัก in ใช้ใน Python เพื่อตรวจสอบว่ามีสตริงย่อยอยู่ภายในสตริงที่กำหนดหรือไม่ โดยจะส่งกลับค่าบูลีน ( True หรือ False) เพื่อระบุว่ามีสตริงย่อยอยู่หรือไม่

text = "Hello, world!"
substring = "world"
if substring in text:
    print("Substring found.")
else:
    print("Substring not found.")
#Output
#Substring found.

<แข็งแกร่ง>2. การเปรียบเทียบสตริง: สามารถเปรียบเทียบสตริงได้โดยใช้ตัวดำเนินการเปรียบเทียบต่างๆ เช่น == (เท่ากับ), != (ไม่เท่ากับ), < (น้อยกว่า), > (มากกว่า), <= (น้อยกว่าหรือเท่ากับ) และ >= (มากกว่าหรือเท่ากับ) ตัวดำเนินการเหล่านี้จะเปรียบเทียบสตริงตามพจนานุกรม ซึ่งหมายความว่าจะเปรียบเทียบค่า ASCII ของอักขระทีละตัว

ตัวอย่าง:

str1 = "apple"
str2 = "banana"
if str1 < str2:
    print("str1 comes before str2.")
else:
    print("str1 comes after str2.")
# Output
# str1 comes before str2.

<แข็งแกร่ง>3. วิธีสตริงสำหรับการค้นหาสตริงย่อย: Python มีวิธีการในตัวหลายวิธีเพื่อค้นหาและจัดการสตริงย่อยภายในสตริง:

  • startswith(prefix): ตรวจสอบว่าสตริงเริ่มต้นด้วยคำนำหน้าที่ระบุหรือไม่
text = "Hello, world!"
if text.startswith("Hello"):
    print("String starts with 'Hello'.")
# Output
# String starts with 'Hello'.
  • endswith(suffix): ตรวจสอบว่าสตริงลงท้ายด้วยส่วนต่อท้ายที่ระบุหรือไม่
text = "Hello, world!"
if text.endswith("world!"):
    print("String ends with 'world!'.")
# Out-put
# String ends with 'world!'.
  • find(substring): ส่งกลับดัชนีต่ำสุดของการเกิดขึ้นครั้งแรกของสตริงย่อยที่ระบุ ส่งคืน -1 หากไม่พบ
text = "Hello, world!"
index = text.find("world")
if index != -1:
    print("Substring found at index:", index)
# Out-put
# Substring found at index: 7
  • index(substring): คล้ายกับ find() แต่ทำให้เกิดข้อผิดพลาดหากไม่พบสตริงย่อย
text = "Hello, world!"
try:
    index = text.index("world")
    print("Substring found at index:", index)
except ValueError:
    print("Substring not found.")
# Out-put
# Substring found at index: 7

วิธีการเหล่านี้ช่วยให้คุณค้นหาและจัดการสตริงย่อยภายในสตริงได้อย่างมีประสิทธิภาพ ซึ่งเป็นงานทั่วไปในการประมวลผลและจัดการข้อความ

บทสรุป

ตลอดบทช่วยสอนนี้ คุณได้รับความรู้มากมายเกี่ยวกับสตริง Python คุณได้สำรวจเทคนิคในการสร้าง จัดการ การจัดรูปแบบ และการเปรียบเทียบสตริงโดยใช้วิธีการและตัวดำเนินการที่หลากหลาย

เผยแพร่ครั้งแรกที่ https://kafilatadeleke.hashnode.dev.