Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Strings - ภาพรวมของ Basic String Operations

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

สร้างสตริงใหม่ใน Python

ในการสร้างสตริง Python ใหม่ คุณเพียงแค่ประกาศลำดับของอักขระที่ล้อมรอบด้วยอัญประกาศเดี่ยวหรือคู่ เครื่องหมายอัญประกาศสามตัวยังใช้สำหรับสตริงที่มีความยาวหลายบรรทัดด้วย

double_quotes = "My name is John!"

single_quotes = 'My name is John!'

multi_line_string = '''1. My name is John!
                       2. I am a programmer'''

การจัดทำดัชนีสตริง

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

myPet = "Dog not a cat"

myPet[0]  # 'D'
myPet[5]  # 'o'
myPet[7]  # ' '
myPet[12] # 't'
# myPet[15] # IndexError

การพยายามเข้าถึงอักขระที่อยู่นอกเหนือดัชนีของอักขระสุดท้ายจะส่งผลให้เกิด IndexError .

คุณสามารถเข้าถึงอักขระในสตริงได้โดยใช้ดัชนีลบ ในกรณีนี้ การสร้างดัชนีจะเริ่มต้นจาก -1 ที่อักขระสุดท้ายของสตริง และจะเพิ่มขึ้นในทางลบเมื่อคุณย้อนกลับ

myPet = "Dog not a cat"

myPet[-1] # 't'
myPet[-6] # ' '
myPet[-8] # 'o'
myPet[-13] # 'D'

การสไลซ์สตริง

Slicing เป็นวิธีการแยกสตริงย่อย (ส่วนหนึ่งของสตริง) ออกจากสตริง งานนี้สำเร็จได้ด้วยความช่วยเหลือของการสร้างดัชนีสตริง

myPet = "Dog not a cat"

myPet[5:7] # 'ot'
myPet[1:12] # 'og not a ca'

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

หากคุณไม่ได้ระบุดัชนีเริ่มต้น การแบ่งส่วนจะเริ่มต้นที่อักขระตัวแรกของสตริง หากคุณไม่ได้ระบุดัชนีสิ้นสุด การแบ่งส่วนจะสิ้นสุดที่อักขระสุดท้ายในขณะที่รวมอักขระนั้นในสตริงย่อยที่ได้

myPet = "Dog not a cat"

myPet[:7] # 'Dog not'
myPet[10:] # 'cat'
myPet[:] # 'Dog not a cat'

คุณสามารถระบุดัชนีเชิงลบเป็นดัชนีแบ่งส่วนได้เช่นกัน

myPet = "Dog not a cat"

myPet[10:-1] # 'ca'

ความยาวของสตริง

เมธอด Python ในตัว len() ส่งออกความยาวของสตริง

myPet = "Dog not a cat"
len(myPet) # 13

วนซ้ำผ่านสตริง

คุณสามารถวนซ้ำอักขระแต่ละตัวในสตริงโดยใช้ for วนซ้ำ

ตัวอย่าง:

name = "John"
for char in name:
    print(char)
# 'J', 'o', 'h', 'n'

การต่อสตริง

การต่อสตริงคือการรวมสตริงตั้งแต่สองสตริงขึ้นไปเพื่อสร้างสตริงเดียว ใน Python มีหลายวิธีในการต่อสตริง

หนึ่งกำลังใช้ + โอเปอเรเตอร์

str1 = 'Hello'
str2 = 'World'
concat_str = str1 + str2 # 'HelloWorld'
concat_str = str1 + ' ' + str2 # 'Hello World'

คุณสามารถใช้ * โอเปอเรเตอร์เพื่อเชื่อมสตริงกับตัวเองหลายครั้ง

concat_str = str1*3 # 'HelloHelloHello'

อีกวิธีในการต่อสตริงคือผ่าน join() วิธีการ

ในตัว join() เมธอดใช้เพื่อเชื่อมอาร์เรย์ของสตริงโดยใช้ตัวคั่นร่วม

arr = [str1, str2]
concat_str = (' ').join(arr) # 'Hello World'
concat_str = (',').join(arr) # 'Hello,World'

ในโค้ดด้านบน join() . ตัวแรก วิธีการเพิ่มช่องว่างระหว่างทุกคำในอาร์เรย์

join()ตัวที่สอง วิธีแทรกเครื่องหมายจุลภาคระหว่างทุกคำในอาร์เรย์

การต่อสตริงและ Int

ใน Python เราสามารถเชื่อมสตริงเป็นจำนวนเต็มได้ แต่ไม่ใช่ด้วย + โอเปอเรเตอร์ หากเราพยายามใช้รหัสต่อไปนี้:

name = "John"
age = 35

print(a + b)

เราจะได้:

Traceback (most recent call last):
  File "concat.py", line 5, in <module>
    print(a + b)
TypeError: can only concatenate str (not "int") to str
หมายเหตุ:คุณไม่สามารถเชื่อมสตริงและจำนวนเต็มโดยใช้ + โอเปอเรเตอร์

เพื่อหลีกเลี่ยงข้อผิดพลาดนี้ เราสามารถใช้ str() วิธีการแปลงจำนวนเต็มเป็นสตริง เช่น:

name = "John "
age = "35"

print(a + str(b)) #John 35

วิธีแยกสตริง

ในตัว split() เมธอดใช้เพื่อแยกสตริงเดียวออกเป็นอาร์เรย์ของสตริง

string = "My name is John"
split_arr = string.split(' ') # ['My', 'name', 'is', 'John']

We can also split a string using a separator:

string = "John, Rose, Jack, Mary"
split_arr = string.split(', ') # ['John', 'Rose', 'Jack', 'Mary']

สตริป - ลบช่องว่าง

strip() วิธีการสตริงในตัวใช้เพื่อลบช่องว่างจากจุดเริ่มต้นและจุดสิ้นสุดของสตริง

string = "    Hello,    World    "
stripper_str = string.strip() # 'Hello,    World'

อย่างที่คุณเห็น strip() ไม่ได้ลบช่องว่างสีขาวที่อยู่ระหว่างอักขระอื่น แต่เฉพาะที่ปลายทั้งสองเท่านั้น

strip() . มีสองรูปแบบ วิธี แถบด้านซ้าย และแถบด้านขวา:

  • lstrip()
  • rstrip()

วิธีการเหล่านี้จะลบช่องว่างที่ด้านซ้ายและด้านขวาของสตริงตามลำดับ

ตัวอย่าง:

lsplit_str = string.lstrip() # 'Hello,    World    '
rsplit_str = string.rstrip() # '    Hello,    World'

เมธอด Strip มีประโยชน์อย่างยิ่งเมื่ออ่านอินพุตของผู้ใช้ ซึ่งผู้ใช้สามารถส่งช่องว่างเพิ่มเติมได้

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

format() ของ Python เมธอดใช้เพื่อจัดรูปแบบสตริง วงเล็บปีกกา {} ใช้ภายในสตริงที่ต้องจัดรูปแบบเป็นตัวยึดสำหรับส่วนที่ต้องการแทนที่ด้วยอาร์กิวเมนต์ที่ให้ไว้กับ format() วิธีการ

ตัวอย่าง:

"Hello, {}".format('John') # 'Hello, John'

ในตัวอย่างข้างต้น {} ถูกแทนที่ด้วย 'John' ในสตริงที่จัดรูปแบบ

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

ตัวอย่าง:

"I have a {}, {}, and a {}".format('dog', 'cat', 'rabbit') # 'I have a dog, cat, and a rabbit'
"I have a {1}, {0}, and a {2}".format('dog', 'cat', 'rabbit') # 'I have a cat, dog, and a rabbit'

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

ตัวอย่าง:

print("{friend} is my friend and {enemy} is my enemy".format(friend="John", enemy="Jack"))
# 'John is my friend and Jack is my enemy'

format() วิธีการค่อนข้างหลากหลายเพราะใช้ได้กับหลายกรณี

ต่อไปนี้เป็นแอปพลิเคชันอื่นๆ ของ format() วิธีการ:

arr = [3, 5]
'I have {0[0]} dogs and {0[1]} cats'.format(arr)
# 'I have 3 dogs and 4 cats'

#convert numbers to different bases
"int: {0:d};  hex: {0:x};  oct: {0:o};  bin: {0:b}".format(42)
# 'int: 42;  hex: 2a;  oct: 52;  bin: 101010'

แปลงสตริงเป็นตัวพิมพ์เล็ก

การใช้ lower() . ของ Python วิธี คุณสามารถแปลงสตริงเป็นตัวพิมพ์เล็กได้

ตัวอย่าง:

string = "Hello, World!"
string.lower() # 'hello, world!'

แปลงสตริงเป็นตัวพิมพ์ใหญ่

ในทำนองเดียวกันโดยใช้ upper() . ของ Python วิธี คุณสามารถแปลงสตริงเป็นตัวพิมพ์ใหญ่ได้

ตัวอย่าง:

string = "Hello, World!"
string.upper() # 'HELLO, WORLD!'

บทสรุป

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

ข้อมูลอ้างอิง:เอกสารสตริงของ Python