Python - สตริง
สตริงเป็นหนึ่งในประเภทที่นิยมมากที่สุดใน 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 มีเฉพาะอักขระทศนิยมและเป็นเท็จ |