ในกระบวนการเรียนรู้ String เราได้พูดถึงวิธีการใช้งานมากมายมาก่อน ในการใช้งานจริง เรามักจะจำเป็นต้องจัดรูปแบบ string และแสดงผลลัพธ์ที่เราต้องการผ่านการจัดรูปแบบ
การจัดรูปแบบสตริงคือการสร้างช่องว่างก่อน จากนั้นปล่อยตำแหน่งไว้สองสามตำแหน่งในช่องว่างนี้ จากนั้นกรอกเนื้อหาที่เกี่ยวข้องตามความต้องการ ตำแหน่งที่เหลือที่นี่เทียบเท่ากับตัวยึดตำแหน่ง วิธีหนึ่งคือใช้ตัวดำเนินการ % และอีกอย่างคือใช้เมธอด format()
ตัวดำเนินการ % นั้นสะดวกมากเมื่อเราจัดรูปแบบสตริง โครงสร้างไวยากรณ์จะเป็นดังนี้:
'%[+][-][0][.m] จัดรูปแบบอักขระ'% การวนซ้ำ
1) การวนซ้ำ คือเนื้อหาที่เราต้องการเติม และรูปแบบหลัง % แรกคือรูปแบบที่เราต้องการเลือก
2)[+] คือการจัดตำแหน่งที่ถูกต้อง และ '+' คือพารามิเตอร์ที่เราสามารถกรอกได้ ตัวเลขแสดงถึงความกว้างของการจัดตำแหน่ง
3)[-] คือการจัดตำแหน่งด้านซ้าย และ '-' คือพารามิเตอร์ที่เราสามารถกรอกได้ ตัวเลขแสดงถึงความกว้างของการจัดตำแหน่ง
4) m ใน [.m] คือความแม่นยำที่เลือกได้ ซึ่งระบุจำนวนตำแหน่งทศนิยมที่จะคงไว้หลังจุดทศนิยม
5) อักขระการจัดรูปแบบคือรูปแบบที่เราต้องเลือก ประเภททั่วไปคือ สตริง %s, จำนวนเต็มทศนิยม %d, อักขระเดี่ยว %c, เลขทศนิยม %f, เลขฐานสิบหก %x และเลขฐานแปด %o ,อักขระ% %
ความเข้าใจเกี่ยวกับตัวดำเนินการ % อาจค่อนข้างเป็นนามธรรม เรามาเรียนรู้เกี่ยวกับมันผ่านตัวอย่างกันดีกว่า สิ่งที่เราใช้กันทั่วไปคือแสดงตัวเลขทศนิยมโดยคงทศนิยมไว้ 2 ตำแหน่งหลังจุดทศนิยม รหัสจะเป็นดังนี้:
>>>my_str=66666.66666>>>print('รูปแบบที่มีทศนิยม 2 ตำแหน่งคือ: %.2f'%my_str) รูปแบบที่มีทศนิยม 2 ตำแหน่งคือ: 66666.67
เมื่อเก็บทศนิยมไว้ การดำเนินการปัดเศษจะดำเนินการโดยอัตโนมัติ เมื่อใช้งาน ให้ใส่ใจกับรูปแบบของมัน เราสามารถเลือกอย่างน้อยหนึ่งรายการเพื่อรวมเข้าด้วยกันเพื่อจัดรูปแบบสตริง ด้านบนเราใช้การดำเนินการจัดรูปแบบ ส่วนการจัดรูปแบบคือ '% 2f' จากนั้นใช้ % ที่ส่วนท้ายของสตริงเพื่อเชื่อมต่อสตริงที่เกี่ยวข้อง ซึ่งเทียบเท่ากับเนื้อหาที่เกี่ยวข้องโดยตรง
เรามาแนะนำการใช้การจัดตำแหน่งอีกครั้ง:
>>>foriinrange(5):...print('%-5d'%i,end='')#การจัดตำแหน่งด้านซ้าย...print('%5d'%i)#การจัดตำแหน่งด้านขวา...0011223344
5 คือความกว้างของการจัดตำแหน่งโค้ด เราใช้การจัดตำแหน่งซ้ายและขวา .
นี่เป็นเรื่องเกี่ยวกับตัวดำเนินการ % คุณสามารถเชี่ยวชาญความรู้นี้ได้เร็วขึ้นโดยฝึกฝนด้วยตนเองด้านล่าง
เมธอด format() มีวิธีการเพิ่มเติมในการจัดรูปแบบสตริง ไวยากรณ์พื้นฐานคือการแทนที่ '%' ด้วย '{}' และ ':' รูปแบบไวยากรณ์ของมันคือ:
str.รูปแบบ()
ลองดูตัวอย่าง:
namea='Xiao Ming' nameb='Xiao Hua' print('{} คือเพื่อนที่ดีของ {}'.format(namea,nameb))
ตัวอย่างนี้เป็นวิธีที่ง่ายที่สุดในการใช้งาน แต่เนื่องจากวิธีนี้ถูกนำมาใช้ในภายหลัง เรามาแนะนำวิธีการเฉพาะด้านล่างนี้กันดีกว่า
ในตัวยึดตำแหน่ง โครงสร้างอาจเป็น:
{[ดัชนี[:[เติม]align][ความกว้าง][#][.k][ประเภท]]}
ลองดูโครงสร้างนี้ผ่านแผนภาพ:
ตัวอย่างข้างต้นมีเพียง '{}' แบบธรรมดาเท่านั้น ถ้าเราแก้ไขมัน เราสามารถใช้โครงสร้างข้างต้นได้ทีละรายการ:
1) Index คือ ตำแหน่งดัชนี เราสามารถให้ตัวเลขเพื่อระบุตำแหน่งดัชนีของวัตถุในรายการได้ ค่าดัชนีเริ่มต้นจาก 0 หากไม่มีค่าดัชนีก็จะเรียงลำดับจากซ้ายไปขวา เช่นเดียวกับตัวอย่างข้างต้น ถ้าเราเพิ่มค่าดัชนี:
namea='Xiao Ming' nameb='Xiao Hua' print('{1} เป็นเพื่อนที่ดีของ {0}'.format(namea,nameb))
จากนั้นตำแหน่งของพวกเขาก็ถูกสลับกัน
2) ':' เป็นข้อกำหนดเบื้องต้นสำหรับการใช้งานในภายหลัง คุณต้องเพิ่ม ':' เมื่อใช้การดำเนินการครั้งต่อไป
3) เติม สามารถเลือกพารามิเตอร์เป็นจำนวนตัวอักษรสำหรับการเติมช่องว่าง
4) ความกว้าง ให้คุณเลือกพารามิเตอร์เพื่อระบุความยาว
5) การจัดตำแหน่ง สามารถเลือกพารามิเตอร์เป็นวิธีการจัดตำแหน่งได้ พารามิเตอร์คือ '>' สำหรับการจัดตำแหน่งทางขวา '<' สำหรับการจัดตำแหน่งทางซ้าย '=' สำหรับการจัดตำแหน่งทางขวา แต่สัญลักษณ์จะถูกวางไว้ทางซ้ายสุด และ '^' แสดงถึงการอยู่ตรงกลาง ต้องใช้แบบมีความกว้าง
ลองดูตัวอย่าง:
>>>my_str='dotcpp'>>>print('{:@>10}'.format(my_str))@@@@dotcpp
ในตัวอย่างนี้ เราเลือกการจัดตำแหน่งที่ถูกต้อง จากนั้นตั้งค่าความกว้างเป็น 10 และแทนที่อักขระช่องว่างด้วยสัญลักษณ์ @
6)'#' เป็นคำนำหน้าฐาน
7).k ใน k เป็นพารามิเตอร์ทางเลือก ใช้เพื่อแสดงตัวเลขที่คงไว้หลังจุดทศนิยม
8) type สามารถเลือกพารามิเตอร์เพื่อระบุประเภทได้ โดยทั่วไปได้แก่ S แทนสตริง D แทนจำนวนเต็มทศนิยม % แทนเปอร์เซ็นต์ และ f หรือ F แทนตัวเลขทศนิยม
ด้านล่างเราใช้ตัวอย่างเพื่อใช้วิธีการข้างต้น
my_str='dotcpp'#ขั้นแรกให้กำหนดสองสตริง my_string=123456.654321print('my_str:{1:!^20s}nmystring:{0:$^20.2f}'.format(my_string,my_str))
ผลลัพธ์คือ:
my_str:!!!!!!dotcpp!!!!!!!mystring:$$$$$123456.65$$$$$$
สำหรับ my_str '1' คือตำแหน่งดัชนี '!' แทนที่อักขระช่องว่าง '^' แทนตำแหน่งกึ่งกลาง 20 คือความกว้าง และ 's' คือประเภทสตริง
สำหรับ my_string นั้น '0' คือตำแหน่งดัชนี '$' แทนที่อักขระแพ็กเก็ตว่าง '^' แทนตำแหน่งกึ่งกลาง กว้าง 20 บิต '.2' แทนทศนิยม 2 ตำแหน่งหลังจุดทศนิยม และ 'f' แทน ประเภทจุดลอยตัว
นั่นเป็นเพียงการพูดถึงเครื่องสาย มีการใช้เครื่องสายบ่อยมาก ดังนั้นทุกคนจึงต้องฝึกฝนและฝึกฝนมันให้เชี่ยวชาญผ่านแบบฝึกหัด