ไม่ว่าจะเป็นการสืบค้นฐานข้อมูลหรือผลลัพธ์ของการดำเนินการทางคณิตศาสตร์ วิธีการจัดรูปแบบสตริงของ Python นำเสนอวิธีการแสดงผลลัพธ์ต่อผู้ใช้แบบไดนามิกและน่าสนใจยิ่งขึ้น
มาดูกันว่าฟังก์ชันstr.format()ทำงานอย่างไรใน Python คุณยังจะได้ทราบวิธีการใช้รูปแบบนี้ในโปรแกรมของคุณเอง
ฟังก์ชัน Python str.format()ช่วยให้คุณสามารถแทรกผลลัพธ์ของคุณได้ทุกที่ในสตริง
ทำงานโดยการจัดสรรพื้นที่สำหรับผลลัพธ์ของคุณภายในสตริงโดยใช้วงเล็บปีกกา จากนั้นเขียนผลลัพธ์ของคุณไปยังตำแหน่งนั้นโดยใช้เมธอดformat()
สตริงที่อยู่นอกวงเล็บปีกกาคือสิ่งที่คุณเรียกว่าข้อความตามตัวอักษร
ฟังก์ชันstr.format()ยอมรับค่าและตัวระบุรูปแบบสตริงที่เป็นตัวเลือก
ไวยากรณ์ทั่วไปมีลักษณะดังนี้:
str.format(value, format_spec)
ตอนนี้ มาดูตัวอย่างการใช้งานจริงเพิ่มเติมเกี่ยวกับวิธีการใช้เมธอดสตริง Python นี้
1. ใส่ค่าในตำแหน่งเฉพาะ
ต่อไปนี้คือตัวอย่างพื้นฐานของวิธีการแทรกค่าลงในสตริงโดยใช้เมธอดstr.format()
Cost = 45 formattedMethod = "This good costs {} dollars only" print(formattedMethod.format(Cost)) Output: This good costs 45 dollars only
รหัสด้านบนเหมือนกับ:
formattedMethod = "This good costs {} dollars only" print(formattedMethod.format(45)) Output: This good costs 45 dollars only
2. แทรกเอาต์พุตหลายรายการลงในสตริง
คุณยังสามารถแทรกผลลัพธ์หลายรายการลงในสตริงได้ โดยใช้วิธีดังนี้:
y = 7*8 f = 5+5 g = 0 a = "The value of y is {}, while f is {}. Nobody can see {}".format(y, f, g) print(a) Output: The value of y is 56, while f is 10. Nobody can see 0
3. ใช้ Escape Braces เพื่อวางเอาต์พุตในเครื่องมือจัดฟันโดยเฉพาะ
หากคุณต้องการใส่ผลลัพธ์ใดๆ ลงในวงเล็บปีกกา ก็ทำได้ง่ายๆ คุณจำเป็นต้องแนะนำเครื่องมือจัดฟันแบบหนีภัยเพิ่มเติมอีกสองอันเท่านั้น
ตัวอย่างเช่น สมมติว่าคุณต้องการyในวงเล็บปีกกาเฉพาะ:
a = "The value of y is {{{}}}, while f is {}. Nobody can see {}".format(y, f, g) print(a) Output: The value of y is {56}, while f is 10. Nobody can see 0
4. ค่าเอาต์พุตจากรายการ
คุณสามารถเลือกค่าเฉพาะจากรายการและแทรกลงในสตริงได้:
myList = [10, 2, 4, 6] print(("The first is {} and the third is {}").format(myList[0], myList[2])) Output: The first is 10 and the third is 4
เพื่อหลีกเลี่ยงการเกิดซ้ำภายในวงเล็บ . format()คุณสามารถตั้งค่าตัวระบุรูปแบบให้ชี้ไปที่ตัวแปรเดียวแทน
นี่คือวิธีการ:
myList = [10, 2, 4, 6] print(("The first is {yourList[0]} and the third is {yourList[2]}").format(yourList = myList)) Output: The first is 10 and the third is 4
ตัวอย่างข้างต้นใช้กับตัวอย่างอื่นๆ ที่เราได้ดำเนินการก่อนหน้านี้เช่นกัน ดังนั้น คุณสามารถเล่นกับพวกเขาโดยใช้เคล็ดลับนี้
5. ใส่ค่าจากพจนานุกรม
เช่นเดียวกับที่คุณทำในส่วนก่อนหน้า คุณสามารถใช้เมธอดstr.format()เพื่อแทรกค่าพจนานุกรมลงในสตริง:
myDiction = {"Ten":10, "Two":2, "Four":4, "Six":6} print(("The first is {} and the third is {}").format(myDiction["Ten"], myDiction["Four"])) Output: The first is 10 and the third is 4
ที่เกี่ยวข้อง: วิธีแปลงรายการเป็นพจนานุกรมใน Python
และถ้าคุณต้องการใช้เคล็ดลับจากส่วนก่อนหน้า:
myDiction = {"Ten":10, "Two":2, "Four":4, "Six":6} print(("The first is {Ten} and the third is {Four}").format(**myDiction)) Output: The first is 10 and the third is 4
คุณยังสามารถเขียนโค้ดด้านบนเป็น:
print(("The first is {d[Ten]} and the third is {d[Four]}").format(d=myDiction)) Output: The first is 10 and the third is 4
6. ใส่เอาต์พุตของฟังก์ชันลงในสตริง
หากคุณต้องการแสดงผลลัพธ์ของฟังก์ชันในสตริง:
def difNums(a, b): if a > b: return a - b else: return return "You can't substract {} from {} using this function".format(a, b) print(("Hey there: {}").format(difNums(2, 6))) Output: Hey there: You can't substract 2 from 6 using this function
ตัวระบุรูปแบบช่วยให้คุณเลือกได้ว่าจะให้รูปแบบของคุณเป็นอย่างไร ดังที่ได้กล่าวไว้ก่อนหน้านี้ก็เป็นพารามิเตอร์ตัวที่มาพร้อมกับstr.format ()
เมื่อใช้ตัวเลือกนี้ คุณสามารถจัดแนวเอาต์พุต ตัดสตริงที่ยาว เอาต์พุตกลุ่ม หรือปัดเศษจำนวนเต็มให้เป็นตัวเลขที่มีนัยสำคัญตามจำนวนเฉพาะ และอื่นๆ อีกมาก
คุณมักจะเขียนตัวระบุรูปแบบในวงเล็บปีกกา แต่คุณยังสามารถระบุได้อย่างชัดเจนในวงเล็บ . format()
มาดูกรณีการใช้งานกันก่อนดีกว่า
7. จัดแนวเอาต์พุตของสตริง
คุณสามารถใช้เครื่องหมายมากกว่า ( > ) เพื่อจัดแนวเอาต์พุตสตริงไปทางขวา:
print("Hello {:>15}".format(12734589)) Output: Hello 12734589
คุณยังสามารถจัดแนวข้อความของคุณให้อยู่ตรงกลางได้หากต้องการ:
print("Hello {:^15}".format(12734589)) Output: Hello 12734589
มาฟอร์แมตเอาท์พุตด้านบนกันดีกว่า ตัวอย่างเช่น คุณสามารถใส่ขีดล่างเพื่อดูการเติมที่ด้านใดด้านหนึ่งของเอาต์พุตสตริงของคุณ:
print("Hello {:_^15}".format(12734589)) Output: Hello ___12734589____
แต่เป็นที่กล่าวถึงก่อนหน้านี้คุณสามารถระบุรูปแบบการระบุอย่างชัดเจนเป็นพารามิเตอร์ภายในstr.format ()
ดังนั้นโค้ดก่อนหน้าจะมีลักษณะดังนี้:
print("Hello {:{g}}".format(12734589, g = "_^15")) Output: Hello ___12734589____
อย่าลังเลที่จะเขียนตัวอย่างอื่นๆ ใหม่โดยใช้ตัวเลือกด้านบน
นอกจากนี้คุณยังอาจต้องการที่จะกลับมาเป็นจำนวนมากโดยเฉพาะอย่างยิ่งของตัวเลขที่สำคัญสำหรับการคำนวณโดยใช้.format ()วิธีการ
ตัวอย่างเช่น โค้ดตัวอย่างด้านล่าง ปัดเศษผลลัพธ์ของการดำเนินการทางคณิตศาสตร์ให้เป็นเลขทศนิยมที่มีนัยสำคัญหนึ่งตัว:
calcprofitPerc = ((45 - 20)/45)*100 formattedOutput = "Our profit on this is {profit: .1f}%" print(formattedOutput.format(profit = calcprofitPerc)) Output: Our profit on this is 55.6%
9. ตัดสายยาว
แม้ว่าการตัดข้อความอาจดูเหมือนทำไม่ได้ แต่คุณไม่สามารถบอกได้ว่าต้องการใช้ที่ใด
วิธีตัดส่วนของเอาต์พุตสตริงโดยใช้ฟังก์ชันstr.format() มีดังนี้
print(("Truncate this to the first 3 alphabets: {:.3}").format("idowuomisola")) Output: Truncate this to the first 3 alphabets: ido
10. แยกกลุ่มตัวเลขโดยใช้เกณฑ์
คุณสามารถแยกกลุ่มตัวเลขโดยใช้ขีดล่างหรือเครื่องหมายจุลภาค:
print("Separated by underscore: {:{g}}".format(12734589, g="_")) print("Separated by comma: {:{g}}".format(12734589, g=",")) Output: Separated by underscore: 12_734_589 Separated by comma: 12,734,589
ที่เกี่ยวข้อง: วิธีแยกสตริงใน Python
ยิ่งไปกว่านั้น คุณสามารถระบุกลุ่มของตัวเลขที่คุณต้องการจัดการโดยใช้คีย์ของมัน:
print("First numbers by underscore: {0:{g}}".format(12734589, 123674, 662772, g="_")) print("Third numbers by comma: {2:{g}}".format(12734589, 123674, 662772, g=",")) Output: First numbers by underscore: 12_734_589 Third numbers by comma: 662,772
วิธีหนึ่งที่คุณสามารถทำให้โปรแกรมของคุณโดดเด่นได้คือวิธีการนำเสนอผลลัพธ์และการสืบค้นข้อมูล ไม่ต้องสงสัยเลยว่ารูปแบบสตริงของ Python เป็นวิธีที่สะอาดกว่าในการส่งออกผลลัพธ์ รูปแบบสตริงใหม่ที่นำมาใช้ใน Python 3 นั้นแตกต่างจากวิธีโมดูโลก่อนหน้าของเวอร์ชัน Python ที่อ่านง่ายกว่าและเป็นมิตรกับมนุษย์มากกว่า