สตริงหลาม
สตริงหลามมีใช้กันมากที่สุดชนิดข้อมูล เราสามารถใช้เครื่องหมายคำพูด ( 'หรือ ") เพื่อสร้างสตริง
สร้างสตริงง่ายมากตราบใดที่ตัวแปรที่มีการกำหนดค่า ตัวอย่างเช่น:
var1 = 'Hello World!' var2 = "Python w3big"
งูหลามค่าสตริงเข้าถึง
งูหลามไม่สนับสนุนชนิดตัวเดียวตัวเดียวนอกจากนี้ยังใช้เป็นสตริงหลาม
งูหลามเข้าถึง substring คุณสามารถใช้วงเล็บที่จะสกัดกั้นตัวอย่างสตริงต่อไปนี้:
#!/usr/bin/python var1 = 'Hello World!' var2 = "Python w3big" print "var1[0]: ", var1[0] print "var2[1:5]: ", var2[1:5]
ผลที่ได้จากตัวอย่างข้างต้น:
var1[0]: H var2[1:5]: ytho
ปรับปรุงสตริงหลาม
คุณสามารถปรับเปลี่ยนเป็นสตริงที่มีอยู่และกำหนดให้กับตัวแปรอื่นตัวอย่างต่อไปนี้:
#!/usr/bin/python # -*- coding: UTF-8 -*- var1 = 'Hello World!' print "更新字符串 :- ", var1[:6] + 'w3big!'
ตัวอย่างของผลของการดังกล่าวข้างต้น
更新字符串 :- Hello w3big!
ตัวหนีงูหลาม
เมื่อคุณจำเป็นต้องใช้อักขระพิเศษในตัวละคร, Python ด้วย backslash (\) ตัวหนี ในตารางต่อไปนี้:
ตัวหนี | ลักษณะ |
---|---|
\ (ในตอนท้ายของบรรทัด) | ulink |
\\ | ทับขวา |
\ ' | ราคาเดียว |
\ " | คำพูดคู่ |
\ a | ระฆัง |
\ B | Backspace (Backspace) |
\ E | หลบหนี |
\ 000 | ว่างเปล่า |
\ n | ห่อ |
\ V | แท็บแนวตั้ง |
\ t | แท็บแนวนอน |
\ r | เข้าสู่ |
\ F | หน้า |
\ Oyy | ตัวละครแปดตัวแทน yy เช่น: \ Ø12แทนการขึ้นบรรทัดใหม่ |
\ XYY | อักขระเลขฐานสิบหกตัวแทน yy เช่น: \ X0A แทนการขึ้นบรรทัดใหม่ |
\ อื่น ๆ | การส่งออกของตัวละครอื่น ๆ ในรูปแบบทั่วไป |
ผู้ประกอบการสตริงหลาม
ตัวแปรเช่นตารางต่อไปนี้เป็นสตริง "สวัสดีครับ" ค่าของตัวแปร B "งูใหญ่":
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
+ | concatenation สตริง | A + B เอาท์พุท: HelloPython |
* * * * | สตริงการส่งออกทำซ้ำ | A * 2 เอาท์พุท: HelloHello |
[] | ได้รับตัวละครในสตริงโดยดัชนี | a [1]E เอาท์พุท |
[:] | ส่วนการสกัดกั้นของสตริง | a [1: 4]ell เอาท์พุท |
ใน | ผู้ประกอบการสมาชิก - หากสตริงมีอักขระที่ได้รับผลตอบแทนที่ทรู | เอช 1 เอาท์พุท |
ไม่ได้อยู่ใน | ผู้ประกอบการสมาชิก - หากสายไม่ได้มีตัวละครที่ได้รับผลตอบแทนที่ทรู | เอ็มไม่ได้อยู่ในการส่งออก 1 |
R / R | สตริงเดิม - สตริงเดิม: สตริงทั้งหมดถูกนำมาใช้โดยตรงในสอดคล้องกับความหมายที่แท้จริงไม่มีตัวอักษรพิเศษหลบหนีหรือไม่พิมพ์ นอกจากนี้ยังมีสายเดิมก่อนที่จะมีคำพูดแรกที่มีตัวอักษร "R" (อาจจะเป็นกรณี) มากกว่ากับสตริงสามัญมีไวยากรณ์ที่เหมือนกันเกือบ | พิมพ์ R '\ n' เอาท์พุท \ n และพิมพ์ R '\ n'เอาท์พุท \ n |
% | สตริงรูปแบบ | ดูส่วนถัดไป |
ตัวอย่างมีดังนี้
#!/usr/bin/python # -*- coding: UTF-8 -*- a = "Hello" b = "Python" print "a + b 输出结果:", a + b print "a * 2 输出结果:", a * 2 print "a[1] 输出结果:", a[1] print "a[1:4] 输出结果:", a[1:4] if( "H" in a) : print "H 在变量 a 中" else : print "H 不在变量 a 中" if( "M" not in a) : print "M 不在变量 a 中" else : print "M 在变量 a 中" print r'\n' print R'\n'
ดังกล่าวข้างต้นผลการทำงานของโปรแกรม:
a + b 输出结果: HelloPython a * 2 输出结果: HelloHello a[1] 输出结果: e a[1:4] 输出结果: ell H 在变量 a 中 M 不在变量 a 中 \n \n
การจัดรูปแบบสตริงหลาม
งูหลามสนับสนุนการส่งออกจัดรูปแบบสตริง แม้ว่านี้จะรวมถึงการแสดงออกที่ซับซ้อนมากการใช้งานพื้นฐานที่สุดคือการใส่ค่าเป็นสตริงระบุ% ใน
ในหลาม, และ C สตริงรูปแบบโดยใช้ไวยากรณ์เช่นเดียวกับฟังก์ชั่นที่ sprintf
ตัวอย่างต่อไปนี้:
#!/usr/bin/python print "My name is %s and weight is %d kg!" % ('Zara', 21)
ตัวอย่างของการส่งออกดังกล่าวข้างต้น:
My name is Zara and weight is 21 kg!
หลามสัญลักษณ์สตริงการจัดรูปแบบ:
สัญญลักษณ์ | ลักษณะ |
---|---|
c% | ตัวอักษรรูปแบบและรหัส ASCII ของพวกเขา |
% s | สตริงรูปแบบ |
% d | รูปแบบจำนวนเต็ม |
u% | รูปแบบ int ไม่ได้ลงนาม |
o% | การจัดรูปแบบฐานแปดไม่ได้ลงนาม |
x% | รูปแบบเลขฐานสิบหกไม่ได้ลงนาม |
X% | รูปแบบเลขฐานสิบหกได้รับการรับรอง (ตัวพิมพ์ใหญ่) |
f% | รูปแบบจำนวนจุดลอยตัวความถูกต้องสามารถระบุหลังจุดทศนิยม |
E% | สัญกรณ์วิทยาศาสตร์รูปแบบ floating point |
E% | การดำเนินการกับ E% โดยใช้สัญกรณ์วิทยาศาสตร์ลอยรูปแบบจุด |
% g | f% และ% E ชวเลข |
G% | f% E% และชวเลข |
p% | เลขฐานสิบหกอยู่จำนวนรูปแบบของตัวแปร |
การจัดรูปแบบการเรียนการสอนผู้ประกอบการให้ความช่วยเหลือ:
สัญญลักษณ์ | ฟังก์ชัน |
---|---|
* * * * | กำหนดความกว้างหรือความแม่นยำทศนิยม |
- | จัดตำแหน่งของ Do ซ้าย |
+ | ตัวเลขบวกที่แสดงบนหน้าเครื่องหมายบวก (+) |
<Sp> | พื้นที่แสดงก่อนตัวเลขบวก |
# | แสดงศูนย์ในด้านหน้าของจำนวนฐานแปด ( '0') หน้าจอแสดงผลของฐานสิบหก '0x' หรือ '0X' (ขึ้นอยู่กับการใช้งาน 'X' หรือ 'X') |
0 | ตัวเลขแสดงเติมด้านหน้า '0' แทนช่องว่างเริ่มต้น |
% | '%%' เอาท์พุทเดียว '%' |
(Var) | การทำแผนที่ตัวแปร (พารามิเตอร์ Dictionary) |
MN | m คือความกว้างโดยรวมต่ำสุดของจอแสดงผล, N คือจำนวนของตำแหน่งทศนิยม (ถ้ามี) |
งูหลามคำพูดที่สาม (คำพูดที่สาม)
สามคำพูดหลามสามารถคัดลอกสตริงที่ซับซ้อน:
หลามคำพูดที่สามช่วยให้สตริงในหลายเส้นสตริงสามารถมีการแบ่งบรรทัดแท็บและอักขระพิเศษอื่น ๆ
คำพูดไวยากรณ์ Triple คู่ของคำพูดเดียวหรือสองครั้งต่อเนื่อง (มักจะจับคู่กับ)
>>> hi = '''hi there''' >>> hi # repr() 'hi\nthere' >>> print hi # str() hi there
คำพูดที่ทริปเปิช่วยให้โปรแกรมเมอร์จากหล่มอยู่ในเครื่องหมายและสตริงพิเศษเริ่มต้นที่จะเสร็จสิ้นในการรักษารูปแบบของสตริงขนาดเล็กที่เรียกว่ารูปแบบ WYSIWYG (WYSIWYG)
กรณีการใช้งานทั่วไปคือเมื่อคุณต้อง HTML หรือ SQL แล้วใช้การรวมกันของสตริงหนีสตริงพิเศษจะเป็นที่น่าเบื่อมาก
errHTML = ''' <HTML><HEAD><TITLE> Friends CGI Demo</TITLE></HEAD> <BODY><H3>ERROR</H3> <B>%s</B><P> <FORM><INPUT TYPE=button VALUE=Back ONCLICK="window.history.back()"></FORM> </BODY></HTML> ''' cursor.execute(''' CREATE TABLE users ( login VARCHAR(8), uid INTEGER, prid INTEGER) ''')
สตริง Unicode
งูหลามเป็นสตริงของ Unicode และสตริงปกติเป็นง่ายๆเป็น:
>>> u'Hello World !' u'Hello World !'
คำคมก่อนพิมพ์เล็ก "U" แสดงที่สร้างขึ้นที่นี่เป็นสตริง Unicode หากคุณต้องการที่จะเพิ่มตัวละครพิเศษที่คุณสามารถใช้งูหลาม Unicode หนีการเข้ารหัส ในตัวอย่างต่อไปนี้:
>>> u'Hello\u0020World !' u'Hello World !'
แทนที่ตัวตน \ u0020 แสดงอยู่ในตำแหน่งที่ได้รับการแทรก Unicode ค่าการเข้ารหัสอักขระ 0x0020 (อักขระช่องว่าง)
สตริงหลามในตัวฟังก์ชั่น
วิธีสตริง Python1.6 จาก 2.0 จะค่อยๆเพิ่มการผสม - พวกเขายังมีการเพิ่มไป Jython
วิธีการเหล่านี้บรรลุโมดูลสตริงวิธีการส่วนใหญ่ตารางต่อไปนี้แสดงตัวในการสนับสนุนของวิธีสตริงปัจจุบันวิธีการทั้งหมดรวมถึงการสนับสนุน Unicode บางคนโดยเฉพาะสำหรับ Unicode
ทาง | ลักษณะ |
---|---|
อักขระตัวพิมพ์ใหญ่ตัวอักษรตัวแรก | |
กลับสตริงศูนย์เดิมและเบาะที่มีช่องว่างให้มีความยาวความกว้างของสตริงใหม่ | |
string.count (STR ขอ = 0 ท้าย = len (สตริง)) | ส่งกลับจำนวนครั้ง STR สตริงปรากฏภายใน STR เกิดขึ้นหาก Beg หรือจบที่ระบุถูกส่งกลับภายในช่วงที่ระบุ |
string.decode (เข้ารหัส = 'UTF-8 ' ข้อผิดพลาด = 'เข้มงวด') | การเข้ารหัสการเข้ารหัสที่ระบุสตริงรูปแบบการถอดรหัสข้อผิดพลาดเริ่มต้นถ้าข้อยกเว้น ValueError เว้นแต่ข้อผิดพลาดที่ระบุไว้คือ 'ไม่สนใจ' หรือ 'แทนที่' |
string.encode (เข้ารหัส = 'UTF-8 ' ข้อผิดพลาด = 'เข้มงวด') | ในการเข้ารหัสสตริงรูปแบบการเข้ารหัสที่ระบุข้อผิดพลาดเริ่มต้นถ้าข้อยกเว้น ValueError เว้นแต่ข้อผิดพลาดที่ระบุไว้คือ 'ไม่สนใจ' หรือ 'แทนที่' |
string.endswith (obj ขอ = 0 ท้าย = len (สตริง)) | ตรวจสอบว่าจุดสิ้นสุด obj สตริงถ้าระบุ Beg หรือสิ้นสุดภายในช่วงที่ระบุว่ามีการตรวจสอบสิ้นสุด obj และถ้าเป็นเช่นนั้นจะส่งกลับจริงเท็จอย่างอื่น |
สตริงในสัญลักษณ์แท็บเข้ามาในพื้นที่สัญลักษณ์แท็บหมายเลขเริ่มต้นของช่องว่างคือ 8 | |
string.find (STR ขอ = 0 ท้าย = len (สตริง)) | การตรวจสอบจะรวมอยู่ใน STR สตริงถ้าคุณขอและสิ้นสุดช่วงที่ระบุก็มีการตรวจสอบว่ามีอยู่ในช่วงที่ระบุถ้ามันเป็นจุดเริ่มต้นของค่าดัชนีจะถูกส่งกลับ -1 มิฉะนั้น |
string.index (STR ขอ = 0 ท้าย = len (สตริง)) | ด้วยการหา () วิธีการเดียวกัน แต่ถ้า STR สตริงไม่ได้ยกเว้นจะมีการรายงาน |
หากมีตัวอักษรอย่างน้อยหนึ่งและตัวอักษรทั้งหมดเป็นตัวอักษรหรือตัวเลขที่คุณกลับมา กลับจริงเท็จอย่างอื่น | |
หากมีตัวอักษรอย่างน้อยหนึ่งและตัวอักษรทั้งหมดที่มีตัวอักษรก็จะส่งกลับทรูมันนี่ มิฉะนั้นก็จะส่งกลับเท็จ | |
ถ้า string มีตัวเลขทศนิยมเพียงส่งกลับค่า True เท็จอย่างอื่น | |
ถ้า string มีผลตอบแทนหลักจริงเท่านั้นมิฉะนั้นเท็จ | |
ถ้า string มีอย่างน้อยหนึ่งตัวละครที่เป็นกรณี ๆ ไปและทั้งหมดของ (เป็นกรณี ๆ ไป) ตัวละครเหล่านี้เป็นตัวพิมพ์เล็กกลับจริงเท็จอย่างอื่น | |
ถ้าสตริงมีอักขระที่เป็นตัวเลขเท่านั้นก็จะส่งกลับจริงเท็จอย่างอื่น | |
ถ้า string มีช่องว่างเพียงผลตอบแทนจริงเท็จอย่างอื่น | |
หากสตริงเป็นชื่อ (ดูชื่อ ()) ส่งกลับจริงเท็จอย่างอื่น | |
ถ้า string มีอย่างน้อยหนึ่งตัวละครที่เป็นกรณี ๆ ไปและทั้งหมดของ (เป็นกรณี ๆ ไป) ตัวละครเหล่านี้เป็นตัวพิมพ์ใหญ่ก็จะส่งกลับจริงเท็จอย่างอื่น | |
ในสตริงเป็นตัวคั่นจะ seq องค์ประกอบทั้งหมด (แสดงสตริง) เป็นสตริงใหม่ | |
ส่งกลับสตริงของอดีตซ้ายธรรมและเบาะที่มีช่องว่างให้ความยาวของความกว้างของสตริงใหม่ | |
สตริงในอักขระตัวพิมพ์ใหญ่ทั้งหมดแปลงเป็นตัวพิมพ์เล็ก | |
ตัดทอนพื้นที่สตริงซ้าย | |
maketrans () วิธีการใช้ในการสร้างตารางการแปลงแมปตัวอักษรสำหรับการสละสองพารามิเตอร์วิธีที่ง่ายที่สุดที่เรียกว่าอาร์กิวเมนต์แรกเป็นสตริงที่แสดงถึงตัวละครที่จะแปลงพารามิเตอร์ที่สองคือการเป็นตัวแทนสตริงของการแปลงเป้าหมาย . | |
กลับสตริง STR ตัวอักษรที่ใหญ่ที่สุด | |
ผลตอบแทนที่ได้ตัวอักษรที่เล็กที่สุดสตริง STR | |
bit เช่นหา () และแยก () รวมตำแหน่งครั้งแรกนับตั้งแต่ที่เกิดขึ้นจาก Str, สตริงเป็นอันดับ 3 องค์ประกอบ (string_pre_str, Str, string_post_str) หากไม่ได้อยู่ในสตริง STR string_pre_str == สตริง | |
string.replace (str1, str2, NUM = string.count (str1)) | แทนที่สตริงใน str1 เข้า str2 ถ้า NUM ระบุแทนที่ไม่เกินครั้ง NUM |
string.rfind (STR ขอ = 0 ท้าย = len (สตริง)) | คล้ายกับการค้นพบ () ฟังก์ชัน แต่เริ่มมองจากทางด้านขวา |
string.rindex (STR ขอ = 0 ท้าย = len (สตริง)) | คล้ายกับดัชนี () แต่เริ่มต้นจากด้านขวา |
ส่งกลับสตริงของอดีตจัดชิดขวาและเบาะที่มีช่องว่างที่จะสตริงใหม่ของความกว้างความยาว | |
string.rpartition (STR) | คล้ายกับพาร์ทิชัน () ฟังก์ชัน แต่เริ่มมองจากทางด้านขวา |
นำปลายสตริงพื้นที่ของสตริง | |
String.split (STR = "" NUM = string.count (STR)) | ใช้เวลาคั่นสตริง STR ชิ้นถ้าค่า NUM ระบุ NUM แล้วเท่านั้นสตริงย่อยแยกออกจากกัน |
แยกจากกันโดยแถวแต่ละแถวจะถูกส่งกลับเป็นส่วนหนึ่งของรายการที่มีเฉพาะส่วนที่ระบุถ้าแถว NUM NUM | |
string.startswith (obj ขอ = 0 ท้าย = len (สตริง)) | ตรวจสอบว่าสตริงเริ่มต้นด้วย obj ก็จะส่งกลับจริงเท็จอย่างอื่น หาก Beg และสิ้นสุดค่าที่ระบุให้ตรวจสอบภายในช่วงที่ระบุ |
lstrip บริหารในสตริง () และ rstrip () | |
สตริงพลิกในกรณี | |
ย้อนกลับ "ชื่อ" ของสตริงที่เป็นจุดเริ่มต้นของทุกคำนิยามตัวอักษรตัวพิมพ์เล็กที่เหลืออยู่ (ดู istitle ()) | |
ตาราง STR ที่กำหนด (256 ตัวอักษร) เพื่อแปลงสตริงตัวอักษร เพื่อกรองตัวอักษรโต้เถียงเดล | |
สตริงการแปลงตัวอักษรตัวพิมพ์เล็กตัวพิมพ์ใหญ่ | |
กลับสตริงของความกว้างความยาวสตริงสายเดิมธรรมขวา, เบาะด้วยศูนย์ในด้านหน้า | |
isdecimal () วิธีการตรวจสอบไม่ว่าจะเป็นสตริงที่ประกอบด้วยอักขระตำแหน่งเท่านั้น วิธีการนี้จะมีอยู่เฉพาะในวัตถุ Unicode |