สตริงเป็นหนึ่งในประเภทที่นิยมมากที่สุดใน Python เราสามารถสร้างได้ง่ายๆโดยใส่เครื่องหมายอัญประกาศ Python ถือว่าอัญประกาศเดี่ยวเหมือนกับเครื่องหมายคำพูดคู่ การสร้างสตริงทำได้ง่ายเพียงแค่กำหนดค่าให้กับตัวแปร ตัวอย่างเช่น -
var1 = 'Hello World!'
var2 = "Python Programming"
การเข้าถึงค่าในสตริง
Python ไม่รองรับประเภทอักขระ สิ่งเหล่านี้ถือว่าเป็นสตริงที่มีความยาวหนึ่งดังนั้นจึงถือว่าเป็นสตริงย่อยด้วย
ในการเข้าถึงสตริงย่อยให้ใช้วงเล็บเหลี่ยมสำหรับการแบ่งส่วนพร้อมกับดัชนีหรือดัชนีเพื่อรับสตริงย่อยของคุณ ตัวอย่างเช่น -
#!/usr/bin/python
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
var1[0]: H
var2[1:5]: ytho
การอัปเดตสตริง
คุณสามารถ "อัปเดต" สตริงที่มีอยู่โดย (re) กำหนดตัวแปรให้กับสตริงอื่น ค่าใหม่อาจเกี่ยวข้องกับค่าก่อนหน้าหรือกับสตริงที่แตกต่างกันโดยสิ้นเชิง ตัวอย่างเช่น -
#!/usr/bin/python
var1 = 'Hello World!'
print "Updated String :- ", var1[:6] + 'Python'
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
Updated String :- Hello Python
อักขระหลบหนี
ตารางต่อไปนี้คือรายการของอักขระ Escape หรืออักขระที่ไม่สามารถพิมพ์ได้ซึ่งสามารถแสดงด้วยเครื่องหมายแบ็กสแลช
อักขระหลบหนีถูกตีความ; ในสตริงที่ยกมาเดี่ยวและสตริงที่ยกมาคู่
| เครื่องหมายแบ็กสแลช |
อักขระเลขฐานสิบหก |
คำอธิบาย |
| \ ก |
0x07 |
กระดิ่งหรือแจ้งเตือน |
| \ b |
0x08 |
Backspace |
| \ cx |
|
Control-x |
| \ Cx |
|
Control-x |
| \ e |
0x1b |
หนี |
| \ ฉ |
0x0c |
ฟีดรูปแบบ |
| \ M- \ Cx |
|
Meta-Control-x |
| \ n |
0x0a |
ขึ้นบรรทัดใหม่ |
| \ nnn |
|
สัญกรณ์ฐานแปดโดยที่ n อยู่ในช่วง 0.7 |
| \ r |
0x0d |
การกลับรถ |
| \ s |
0x20 |
พื้นที่ |
| \ t |
0x09 |
แท็บ |
| \ v |
0x0b |
แท็บแนวตั้ง |
| \ x |
|
อักขระ x |
| \ xnn |
|
สัญกรณ์เลขฐานสิบหกโดยที่ n อยู่ในช่วง 0.9, af หรือ AF |
ตัวดำเนินการพิเศษสตริง
สมมติตัวแปรสตริง a ถือ 'สวัสดี' และตัวแปร b ถือ 'Python' จากนั้น -
| ตัวดำเนินการ |
คำอธิบาย |
ตัวอย่าง |
| + |
การต่อ - เพิ่มค่าที่ด้านใดด้านหนึ่งของตัวดำเนินการ |
a + b จะให้ HelloPython |
| * |
การทำซ้ำ - สร้างสตริงใหม่โดยเชื่อมต่อสำเนาหลายชุดของสตริงเดียวกัน |
a * 2 จะให้ -HelloHello |
| [] |
Slice - ให้อักขระจากดัชนีที่กำหนด |
a [1] จะให้ e |
| [:] |
Range Slice - ให้อักขระจากช่วงที่กำหนด |
[1: 4] จะให้เอลล์ |
| ใน |
Membership - ส่งกลับค่าจริงหากมีอักขระอยู่ในสตริงที่กำหนด |
H ในพินัยกรรมให้ 1 |
| ไม่เข้า |
Membership - ส่งกลับค่าจริงหากอักขระไม่มีอยู่ในสตริงที่กำหนด |
M ไม่อยู่ในพินัยกรรมให้ 1 |
| r / R |
Raw String - ระงับความหมายที่แท้จริงของอักขระ Escape ไวยากรณ์สำหรับสตริงดิบจะเหมือนกับสตริงปกติทุกประการยกเว้นตัวดำเนินการสตริงดิบตัวอักษร "r" ซึ่งนำหน้าเครื่องหมายคำพูด "r" สามารถเป็นตัวพิมพ์เล็ก (r) หรือตัวพิมพ์ใหญ่ (R) และต้องอยู่หน้าเครื่องหมายคำพูดแรกทันที |
พิมพ์ r '\ n' พิมพ์ \ n และพิมพ์ R '\ n'prints \ n |
| % |
รูปแบบ - ดำเนินการจัดรูปแบบสตริง |
ดูที่หัวข้อถัดไป |
ตัวดำเนินการจัดรูปแบบสตริง
หนึ่งในคุณสมบัติที่ยอดเยี่ยมที่สุดของ Python คือตัวดำเนินการรูปแบบสตริง% ตัวดำเนินการนี้มีลักษณะเฉพาะสำหรับสตริงและประกอบขึ้นสำหรับแพ็คของการมีฟังก์ชันจากตระกูล printf () ของ C ต่อไปนี้เป็นตัวอย่างง่ายๆ -
#!/usr/bin/python
print "My name is %s and weight is %d kg!" % ('Zara', 21)
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
My name is Zara and weight is 21 kg!
นี่คือรายการชุดสัญลักษณ์ที่สมบูรณ์ซึ่งสามารถใช้ร่วมกับ% -
| รูปแบบสัญลักษณ์ |
การแปลง |
| %ค |
ตัวละคร |
| % s |
การแปลงสตริงผ่าน str () ก่อนการจัดรูปแบบ |
| %ผม |
จำนวนเต็มทศนิยมที่ลงนาม |
| % d |
จำนวนเต็มทศนิยมที่ลงนาม |
| %ยู |
จำนวนเต็มทศนิยมที่ไม่ได้ลงชื่อ |
| % o |
จำนวนเต็มฐานแปด |
| % x |
เลขฐานสิบหก (อักษรตัวพิมพ์เล็ก) |
| % X |
เลขฐานสิบหก (อักษรตัวพิมพ์ใหญ่) |
| % e |
สัญกรณ์เลขชี้กำลัง (ด้วยตัวพิมพ์เล็ก 'e') |
| จ |
สัญกรณ์เอกซ์โพเนนเชียล (มี UPPERcase 'E') |
| % ฉ |
จำนวนจริงลอยตัว |
| % ก |
ยิ่งสั้นลงของ% f และ% e |
| % ช |
ยิ่งสั้นลงของ% f และ% E |
สัญลักษณ์และฟังก์ชันการทำงานที่รองรับอื่น ๆ แสดงอยู่ในตารางต่อไปนี้ -
| สัญลักษณ์ |
ฟังก์ชันการทำงาน |
| * |
อาร์กิวเมนต์ระบุความกว้างหรือความแม่นยำ |
| - |
เหตุผลด้านซ้าย |
| + |
แสดงเครื่องหมาย |
| <sp> |
เว้นช่องว่างไว้ก่อนจำนวนบวก |
| # |
เพิ่มเลขศูนย์นำหน้าฐานแปด ('0') หรือเลขฐานสิบหกนำหน้า '0x' หรือ '0X' ขึ้นอยู่กับว่าใช้ 'x' หรือ 'X' |
| 0 |
รองจากซ้ายด้วยศูนย์ (แทนช่องว่าง) |
| % |
'%%' ทำให้คุณมีลิเทอรัลตัวเดียว '%' |
| (หลากหลาย) |
ตัวแปรการแมป (อาร์กิวเมนต์พจนานุกรม) |
| mn |
m คือความกว้างรวมขั้นต่ำและ n คือจำนวนหลักที่จะแสดงหลังจุดทศนิยม (ถ้าใช้ appl) |
คำคมสาม
คำพูดสามคำของ Python ช่วยให้สตริงสามารถขยายได้หลายบรรทัดรวมถึง NEWLINE แบบคำต่อคำแท็บและอักขระพิเศษอื่น ๆ
ไวยากรณ์สำหรับคำพูดสามคำประกอบด้วยสามคำที่ติดต่อกัน single or double คำพูด
#!/usr/bin/python
para_str = """this is a long string that is made up of
several lines and non-printable characters such as
TAB ( \t ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [ \n ], or just a NEWLINE within
the variable assignment will also show up.
"""
print para_str
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้ สังเกตว่าอักขระพิเศษทุกตัวถูกแปลงเป็นรูปแบบสิ่งพิมพ์ลงไปที่ NEWLINE สุดท้ายที่ท้ายสตริงระหว่าง "ขึ้น" และปิดคำพูดสามคำ นอกจากนี้โปรดทราบว่า NEWLINE เกิดขึ้นกับการกลับรถอย่างชัดเจนที่ท้ายบรรทัดหรือรหัสหนี (\ n) -
this is a long string that is made up of
several lines and non-printable characters such as
TAB ( ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [
], or just a NEWLINE within
the variable assignment will also show up.
สตริงดิบไม่ถือว่าแบ็กสแลชเป็นอักขระพิเศษเลย อักขระทุกตัวที่คุณใส่ลงในสตริงดิบยังคงอยู่ในแบบที่คุณเขียน -
#!/usr/bin/python
print 'C:\\nowhere'
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
C:\nowhere
ตอนนี้ให้ใช้สตริงดิบ เราจะแสดงออกมาr'expression' ดังต่อไปนี้ -
#!/usr/bin/python
print r'C:\\nowhere'
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
C:\\nowhere
สตริง Unicode
สตริงปกติใน Python จะถูกเก็บไว้ภายในเป็น ASCII แบบ 8 บิตในขณะที่สตริง Unicode จะถูกจัดเก็บเป็น Unicode 16 บิต ซึ่งช่วยให้มีชุดอักขระที่หลากหลายมากขึ้นรวมถึงอักขระพิเศษจากภาษาส่วนใหญ่ในโลก ฉันจะ จำกัด การปฏิบัติต่อสตริง Unicode ของฉันดังต่อไปนี้ -
#!/usr/bin/python
print u'Hello, world!'
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
Hello, world!
ดังที่คุณเห็นสตริง Unicode ใช้คำนำหน้า u เช่นเดียวกับสตริงดิบใช้คำนำหน้า r
วิธีการสตริงในตัว
Python มีวิธีการในตัวต่อไปนี้เพื่อจัดการกับสตริง -
| ซีเนียร์ |
วิธีการพร้อมคำอธิบาย |
| 1 |
ใช้ประโยชน์ () อักษรตัวแรกของสตริงเป็นตัวพิมพ์ใหญ่ |
| 2 |
ศูนย์ (ความกว้างช่องเติม) ส่งคืนสตริงที่มีช่องว่างโดยให้สตริงเดิมอยู่ตรงกลางกับคอลัมน์ความกว้างทั้งหมด |
| 3 |
นับ (str, ขอ = 0, end = len (สตริง)) นับจำนวนครั้งที่ str เกิดขึ้นในสตริงหรือในสตริงย่อยของสตริงหากดัชนีเริ่มต้นขอและสิ้นสุดดัชนีสิ้นสุดจะได้รับ |
| 4 |
ถอดรหัส (การเข้ารหัส = 'UTF-8', ข้อผิดพลาด = 'เข้มงวด') ถอดรหัสสตริงโดยใช้ตัวแปลงสัญญาณที่ลงทะเบียนสำหรับการเข้ารหัส การเข้ารหัสมีค่าเริ่มต้นเป็นการเข้ารหัสสตริงเริ่มต้น |
| 5 |
เข้ารหัส (การเข้ารหัส = 'UTF-8', ข้อผิดพลาด = 'เข้มงวด') ส่งคืนเวอร์ชันสตริงที่เข้ารหัสของสตริง เมื่อเกิดข้อผิดพลาดค่าเริ่มต้นคือการเพิ่ม ValueError เว้นแต่จะมีการระบุข้อผิดพลาดด้วย "ละเว้น" หรือ "แทนที่" |
| 6 |
สิ้นสุดด้วย (คำต่อท้ายขอ = 0, end = len (สตริง)) กำหนดว่าสตริงหรือสตริงย่อยของสตริง (ถ้าดัชนีเริ่มต้นขอและสิ้นสุดดัชนีสิ้นสุดจะได้รับ) ลงท้ายด้วยคำต่อท้าย คืนค่าจริงถ้าเป็นอย่างนั้นและเป็นเท็จ |
| 7 |
ขยายแท็บ (tabsize = 8) ขยายแท็บในสตริงเป็นหลายช่องว่าง ค่าเริ่มต้นคือ 8 ช่องว่างต่อแท็บหากไม่ได้ระบุขนาดแท็บ |
| 8 |
ค้นหา (str, ขอ = 0 end = len (สตริง)) ตรวจสอบว่า str เกิดขึ้นในสตริงหรือในสตริงย่อยของสตริงหากดัชนีเริ่มต้นขอและสิ้นสุดดัชนีสิ้นสุดจะได้รับดัชนีผลตอบแทนหากพบและ -1 มิฉะนั้น |
| 9 |
ดัชนี (str, ขอ = 0, end = len (สตริง)) เหมือนกับ find () แต่จะมีข้อยกเว้นหากไม่พบ str |
| 10 |
ไอซอลนัม () ส่งคืนค่าจริงหากสตริงมีอักขระอย่างน้อย 1 ตัวและอักขระทั้งหมดเป็นตัวอักษรและตัวเลขคละกันหรือเป็นเท็จ |
| 11 |
isalpha () ส่งคืนจริงหากสตริงมีอักขระอย่างน้อย 1 ตัวและอักขระทั้งหมดเป็นตัวอักษรและเป็นเท็จ |
| 12 |
isdigit () ส่งคืนจริงหากสตริงมีเพียงตัวเลขและเป็นเท็จ |
| 13 |
ไอโซเวอร์ () ส่งคืนจริงหากสตริงมีอักขระที่อยู่ในกล่องอย่างน้อย 1 ตัวและอักขระที่อยู่ในกล่องทั้งหมดเป็นตัวพิมพ์เล็กและเป็นเท็จ |
| 14 |
เป็นตัวเลข () ส่งคืนจริงหากสตริง Unicode มีเฉพาะอักขระตัวเลขและเป็นเท็จ |
| 15 |
isspace () ส่งคืนจริงหากสตริงมีเฉพาะอักขระเว้นวรรคและเป็นเท็จ |
| 16 |
istitle () ส่งคืนจริงหากสตริงเป็น "titlecased" อย่างถูกต้องและเป็นเท็จ |
| 17 |
isupper () ส่งคืนจริงหากสตริงมีอักขระที่อยู่อย่างน้อยหนึ่งตัวและอักขระที่อยู่ในกล่องทั้งหมดเป็นตัวพิมพ์ใหญ่และเป็นเท็จ |
| 18 |
เข้าร่วม (seq) ผสาน (ต่อกัน) การแสดงสตริงขององค์ประกอบในลำดับ seq เข้ากับสตริงด้วยสตริงตัวคั่น |
| 19 |
len (สตริง) ส่งกลับความยาวของสตริง |
| 20 |
ljust (ความกว้าง [ช่องเติม]) ส่งคืนสตริงที่มีช่องว่างที่มีสตริงเดิมชิดซ้ายเป็นคอลัมน์ความกว้างทั้งหมด |
| 21 |
ต่ำกว่า () แปลงอักษรตัวพิมพ์ใหญ่ทั้งหมดในสตริงเป็นตัวพิมพ์เล็ก |
| 22 |
lstrip () ลบช่องว่างนำหน้าทั้งหมดในสตริง |
| 23 |
แมคโครทรานส์ () ส่งคืนตารางการแปลที่จะใช้ในฟังก์ชันแปล |
| 24 |
สูงสุด (str) ส่งคืนอักขระตามตัวอักษรสูงสุดจากสตริง str |
| 25 |
นาที (str) ส่งกลับอักขระตามตัวอักษรขั้นต่ำจากสตริง str |
| 26 |
แทนที่ (เก่าใหม่ [สูงสุด]) แทนที่การเกิดขึ้นทั้งหมดของสตริงเก่าด้วยใหม่หรือสูงสุดที่เกิดขึ้นหากกำหนดสูงสุด |
| 27 |
rfind (str, ขอ = 0, end = len (สตริง)) เหมือนกับ find () แต่ค้นหาย้อนกลับในสตริง |
| 28 |
rindex (str, ขอ = 0, end = len (สตริง)) เหมือนกับดัชนี () แต่ค้นหาย้อนหลังในสตริง |
| 29 |
rjust (ความกว้าง [Fillchar]) ส่งคืนสตริงที่มีช่องว่างพร้อมกับสตริงเดิมที่จัดชิดขวาให้กับคอลัมน์ความกว้างทั้งหมด |
| 30 |
rstrip () ลบช่องว่างต่อท้ายทั้งหมดของสตริง |
| 31 |
แยก (str = "", num = string.count (str)) แยกสตริงตามตัวคั่น str (ช่องว่างหากไม่ได้ระบุไว้) และส่งคืนรายการสตริงย่อย แยกเป็นสตริงย่อยจำนวนมากที่สุดหากกำหนด |
| 32 |
เส้นแบ่ง (num = string.count ('\ n')) แยกสตริงทั้งหมด (หรือ num) NEWLINE และส่งกลับรายการของแต่ละบรรทัดโดยลบ NEWLINE ออก |
| 33 |
เริ่มต้นด้วย (str, ขอ = 0, end = len (สตริง)) กำหนดว่าสตริงหรือสตริงย่อยของสตริง (ถ้าดัชนีเริ่มต้นขอและสิ้นสุดดัชนีสิ้นสุดจะได้รับ) เริ่มต้นด้วยสตริงย่อย str; คืนค่าจริงถ้าเป็นอย่างนั้นและเป็นเท็จ |
| 34 |
แถบ ([ตัวอักษร]) ดำเนินการทั้ง lstrip () และ rstrip () บนสตริง |
| 35 |
แลกเปลี่ยน () Inverts case สำหรับตัวอักษรทั้งหมดในสตริง |
| 36 |
หัวข้อ() ส่งคืนสตริงเวอร์ชัน "titlecased" นั่นคือทุกคำขึ้นต้นด้วยตัวพิมพ์ใหญ่และส่วนที่เหลือเป็นตัวพิมพ์เล็ก |
| 37 |
แปล (ตาราง, deleteechars = "") แปลสตริงตามตารางการแปล str (256 ตัวอักษร) โดยลบสิ่งเหล่านั้นในสตริงเดล |
| 38 |
บน () แปลงอักษรตัวพิมพ์เล็กในสตริงเป็นตัวพิมพ์ใหญ่ |
| 39 |
zfill (กว้าง) ส่งคืนสตริงเดิมที่มีเลขศูนย์เป็นอักขระความกว้างทั้งหมด มีไว้สำหรับตัวเลข zfill () เก็บเครื่องหมายใด ๆ ที่กำหนดไว้ (น้อยกว่าหนึ่งศูนย์) |
| 40 |
เป็นทศนิยม () ส่งคืนจริงหากสตริง Unicode มีเฉพาะอักขระทศนิยมและเป็นเท็จ |