Python รูปแบบสตริง () อธิบายด้วยตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

Python เมธอด `format()` ของสตริงเป็นเมธอดในตัวที่ใช้แทนที่ตัวยึดตำแหน่งวงเล็บปีกกาภายในสตริงแม่แบบด้วยค่าที่กำหนด ตัวยึดตำแหน่งสามารถรับวงเล็บปีกกาว่าง ดัชนีตำแหน่ง หรือชื่อคำหลัก และรองรับตัวระบุรูปแบบตัวเลข การจัดแนว และการเว้นช่องว่างสำหรับผลลัพธ์สุดท้าย

  • 🔤 ตัวแทน: วงเล็บปีกกา {} ระบุตำแหน่งที่จะใส่ค่า — ว่างเปล่า, มีหมายเลข {0}, หรือตั้งชื่อ {name}
  • 🔢 ตำแหน่งและคำหลัก: ฟังก์ชัน format() จะเติมวงเล็บปีกกาที่ว่างเปล่าตามลำดับ โดยเรียงตามตำแหน่งดัชนี หรือตามชื่อคำหลักที่ตรงกัน
  • 🎛️ ตัวระบุรูปแบบ: เครื่องหมายโคลอนจะเพิ่มรหัส เช่น {:d}, {:b}, {:.2f} และ {:x} สำหรับการแสดงผลในรูปแบบทศนิยม ไบนารี จุดคงที่ และเลขฐานสิบหก
  • ↔️ การจัดแนวและการเว้นระยะ: จัดความกว้างของตัวเลขด้วย {:^10} หรือ {:,} ให้อยู่ตรงกลางข้อความ เพิ่มระยะห่าง และใส่เครื่องหมายคั่นหลักพัน
  • 🧱 วัตถุและพจนานุกรม: ตัวยึดตำแหน่งจะอ่านแอตทริบิวต์ของคลาสด้วย {c.attr} และค่าในพจนานุกรมด้วย {m[key]}
  • 🤖 ความช่วยเหลือจากเอไอ: ผู้ช่วยเขียนโค้ด AI สร้างคำสั่ง format() และคำสั่ง f-string ที่เทียบเท่าจากข้อความแจ้งที่เป็นภาษาธรรมดา

Python รูปแบบสตริง()

ความหมายของ Python รูปแบบสตริง ()?

Python รูปแบบสตริง() เป็นฟังก์ชันที่ใช้ในการแทนที่ แทนที่ หรือแปลงสตริงด้วยตัวยึดตำแหน่งที่มีค่าที่ถูกต้องในสตริงสุดท้าย มันเป็นฟังก์ชั่นในตัวของ Python คลาสสตริงซึ่งส่งคืนสตริงที่จัดรูปแบบเป็นผลลัพธ์ ตัวแทนภายในสตริงถูกกำหนดไว้ในวงเล็บปีกกา

ตัวอย่างเช่น “ยินดีต้อนรับสู่” Guru99 {}”.format('ค่าตรงนี้').

ไวยากรณ์ของฟังก์ชัน format() ใน Python

templatestring.format(val1, val2...)

พารามิเตอร์

val1, val2 … : ค่าที่ต้องแทนที่ในสตริงเทมเพลตที่กำหนดซึ่งมีช่องว่างในรูปแบบของวงเล็บปีกกา {} ช่องว่างอาจเป็นสตริง คู่คีย์/ค่า จำนวนเต็ม ตัวเลขจุดลอยตัว อักขระ ฯลฯ

ส่งคืนค่า

ระบบจะส่งคืนสตริงสุดท้ายโดยมีค่าที่ถูกต้องถูกแทนที่ในตำแหน่งที่ระบุในวงเล็บปีกกา

ตัวยึดตำแหน่ง

ตัวแทนในสตริงเทมเพลตจะแสดงโดยใช้เครื่องหมายวงเล็บปีกกา เช่น {} ตัวแทนสามารถเป็น {} ที่ว่างเปล่า หรือสามารถมีตัวแปรได้ เช่น {name} หรือสามารถมีดัชนีตัวเลขได้ เช่น {0} , {1} เป็นต้น

รูปแบบสตริง () ทำงานอย่างไร

การขอ Python รูปแบบสตริง() วิธีการนี้จะสแกนสตริงต้นฉบับเพื่อหาตัวแทน ตัวแทนอาจเป็นวงเล็บปีกกาว่างเปล่า ({}) อาร์กิวเมนต์ตำแหน่ง กล่าวคือ สตริงสามารถมีตัวแทนที่มีดัชนี 0, 1 เช่น {0}, {1} เป็นต้น

สำหรับอาร์กิวเมนต์คีย์เวิร์ด ชื่อตัวแปรจะปรากฏอยู่ภายในวงเล็บปีกกา เช่น {name}, {age} ในกรณีที่มีวงเล็บปีกกาว่าง ค่าจากรูปแบบจะถูกแทนที่ภายในวงเล็บปีกกาตามลำดับ

ค่าแรกจะถูกแทนที่ด้วยวงเล็บปีกกาว่างอันแรก ตามด้วยค่าถัดไป สำหรับอาร์กิวเมนต์ตำแหน่ง ดัชนีจะเริ่มต้นจาก 0 เป็นต้นไป ค่าจะอยู่ในรูปแบบคั่นด้วยเครื่องหมายจุลภาคและเป็น 0th ค่าจะชี้ไปที่ค่าแรกภายในรูปแบบและอื่นๆ

สำหรับอาร์กิวเมนต์คำสำคัญ เช่น เมื่อคุณใช้ตัวแปรภายในตัวยึดตำแหน่งของคุณ คุณสามารถเรียงลำดับค่าในรูปแบบตามที่คุณต้องการได้

ลำดับไม่สำคัญที่นี่ เนื่องจากค่าจะถูกแทนที่ด้วยชื่อตัวแปรที่อยู่ในรูปแบบ () ต่อไปนี้คือตัวอย่างบางส่วนของวิธีใช้ตัวยึดตำแหน่งภายในสตริงเป็นค่าว่าง ตำแหน่ง และการใช้คำสำคัญหรือตัวแปร

ตัวอย่าง: Placeholder ว่างเปล่าแทนที่ด้วยค่าสตริง

ในตัวอย่างด้านล่าง สตริงมีวงเล็บปีกกาว่างเปล่า ({}) ค่าที่กำหนดให้กับรูปแบบจะถูกแทนที่ภายในวงเล็บปีกกา ({})

ค่าที่เราต้องการแทนที่คือสตริง

ตัวอย่าง:

การใช้การจัดรูปแบบสตริงใน Pythonเราต้องการให้วงเล็บปีกกา ({}) ถูกแทนที่ด้วยค่าสตริง ค่าดังกล่าวจะถูกส่งไปยัง format(“Guru99”) เมื่อดำเนินการ วงเล็บปีกกา {} จะถูกแทนที่ด้วย Guru99 และคุณจะได้รับข้อความสุดท้ายว่า Welcome to Guru99 บทเรียน

print ("Welcome to {} tutorials".format("Guru99"))

Output:

Welcome to Guru99 tutorials

ตัวอย่าง: ตัวยึดตำแหน่งว่างจะแทนที่ด้วยค่าตัวเลข

ในตัวอย่างด้านล่าง เราต้องการให้ค่าตัวเลขถูกแทนที่ภายในสตริงต้นฉบับ เครื่องหมายวงเล็บปีกกา ({}) จะถูกเพิ่มในตำแหน่งที่คุณต้องการค่าตัวเลข เมื่อดำเนินการ เครื่องหมายวงเล็บปีกกาว่าง ({}) จะถูกแทนที่ด้วยค่าตัวเลข

ตัวอย่าง:

คุณยังสามารถใช้ format() เพื่อแทรกตัวเลขภายในสตริงของคุณได้ ตัวอย่างนี้จะแสดงวิธีการแทนที่ช่องว่าง {} ด้วยตัวเลข 99 ที่อยู่ใน format()

print ("Welcome to Guru{} Tutorials".format("99"))

Output:

Welcome to Guru99 Tutorials

ตัวอย่าง: การใช้อาร์กิวเมนต์ของตัวแปรหรือคีย์เวิร์ดภายใน Placeholder

นอกจากนี้ยังสามารถใช้ตัวแปรภายในวงเล็บปีกกาได้ ดังที่แสดงในตัวอย่างด้านล่าง ตัวแปรถูกกำหนดไว้ภายใน format() ดังนั้น เมื่อดำเนินการ ค่าที่กำหนดให้กับตัวแปรจะถูกแทนที่ภายในสตริงต้นฉบับ

ตัวอย่าง:

คุณสามารถใช้ตัวแปรภายในวงเล็บปีกกาได้ เช่น {name} {num} ค่าของตัวแปร name และ num สามารถเข้าถึงได้ภายในรูปแบบ เช่น format(name="Guru”, num=”99″) ค่าที่กำหนดให้กับ name และ num จะถูกแทนที่ภายใน {name} และ {num}

print ("Welcome to {name}{num} Tutorials".format(name="Guru", num="99"))

Output:

Welcome to Guru99 Tutorials

ตัวอย่าง: การใช้ดัชนีหรืออาร์กิวเมนต์ตำแหน่งภายใน Placeholder

สามารถแทนที่ค่าได้โดยใช้ดัชนีเช่น 0, 1, 2 ภายในตัวยึดตำแหน่ง ค่าจะถูกเลือกตามลำดับจากรูปแบบ () ดังแสดงในตัวอย่างด้านล่าง

ตัวอย่าง:

print ("Welcome to {0}{1} Tutorials".format("Guru","99"))

Output:

Welcome to Guru99 Tutorials

ตัวอย่าง: การใช้ตัวยึดตำแหน่งหลายตัวภายในสตริง

ในตัวอย่างนี้ เราจะใช้ตัวยึดตำแหน่งว่างหลายตัว

ตัวอย่าง:

สตริงที่ใช้ในตัวอย่างมีตัวยึดตำแหน่งว่างหลายตัว และตัวยึดตำแหน่งแต่ละตัวจะอ้างอิงถึงค่าภายในรูปแบบ () ค่าแรกจะถูกแทนที่ด้วยตัวยึดตำแหน่งแรกและต่อๆ ไป

print ("{} is {} new kind of {} experience!".format("Guru99", "totally","learning"))

Output:

Guru99 is totally new kind of learning experience!

การจัดรูปแบบภายในตัวยึดตำแหน่ง

คุณคงเห็นว่ามีความเป็นไปได้ที่จะมี Placeholder เป็นค่าว่าง โดยมีตัวแปรหรือดัชนี ก็สามารถสมัครได้เช่นกัน Python การจัดรูปแบบสตริงภายในตัวยึดตำแหน่ง

นี่คือรายการรูปแบบ

รูปแบบ Descriptไอออน ตัวอย่าง
:d มันจะให้ผลลัพธ์ในรูปแบบทศนิยมเมื่อใช้ภายในตัวยึดตำแหน่ง print("The binary to decimal value is : {:d}".format(0b0011))

Output:

The binary to decimal value is  : 3
:b มันจะให้ผลลัพธ์ในรูปแบบไบนารี่เมื่อใช้ภายในตัวยึดตำแหน่ง print("The binary value is : {:b}".format(500))

Output:

The binary value is : 111110100
:e มันจะให้ผลลัพธ์ในรูปแบบวิทยาศาสตร์เมื่อใช้ภายในตัวยึดตำแหน่ง เลขชี้กำลัง e ในเอาต์พุตจะเป็นตัวพิมพ์เล็ก print("The scientific value is : {:e}".format(40))

Output:

The scientific format value is : 4.000000e+01
:E มันจะให้ผลลัพธ์ในรูปแบบวิทยาศาสตร์เมื่อใช้ภายในตัวยึดตำแหน่ง เลขชี้กำลัง E ในเอาต์พุตจะเป็นตัวพิมพ์ใหญ่ print("The scientific value is : {:E}".format(40))

Output:

The scientific value is : 4.000000E+01
:f สิ่งนี้จะส่งออกรูปแบบตัวเลขจุดคงที่ ตามค่าเริ่มต้น คุณจะได้ผลลัพธ์เป็นตัวเลขใดๆ ที่มีทศนิยมหกตำแหน่ง ในกรณีที่ต้องการทศนิยมไม่เกิน 2 ตำแหน่ง ให้ใช้เป็น 2f คือ มหัพภาค (.) หน้า 2f print("The value is : {:f}".format(40))

Output:

The value is  : 40.000000

ตัวอย่าง: แสดงผลลัพธ์สูงสุด 2 ตำแหน่งทศนิยม

print("The value is : {:.2f}".format(40))

Output:

The value is: 40.00
:o สิ่งนี้จะส่งออกรูปแบบฐานแปด print("The value is : {:o}".format(500))

Output:

The value is  : 764
:x สิ่งนี้จะส่งออกรูปแบบเลขฐานสิบหกเป็นตัวพิมพ์เล็ก print("The value is : {:x}".format(500))

Output:

The value is  : 1f4
:X สิ่งนี้จะส่งออกรูปแบบเลขฐานสิบหกเป็นตัวพิมพ์ใหญ่ print("The value is : {:X}".format(500))

Output:

The value is  : 1F4
:n สิ่งนี้จะส่งออกรูปแบบตัวเลข print("The value is : {:n}".format(500.00))

Output:

The value is  : 500
:% นี่จะให้ผลลัพธ์ในรูปแบบเปอร์เซ็นต์
ตามค่าเริ่มต้น จะให้ทศนิยม 6 ตำแหน่งสำหรับเปอร์เซ็นต์เอาต์พุต ในกรณีที่คุณไม่ต้องการค่าทศนิยม คุณสามารถใช้จุดด้วย 0 เช่น (:.0%)
print("The value is : {:%}".format(0.80))

Output:

The value is  : 80.000000%

ตัวอย่างนี้แสดงวิธีข้ามตำแหน่งทศนิยมโดยใช้ {:.0%} ภายในตัวยึดตำแหน่ง

print("The value is : {:.0%}".format(0.80))
Output:

The value is: 80%
:_ สิ่งนี้จะแสดงขีดล่างเป็นตัวคั่นหลักพัน มีให้ใช้งานตั้งแต่ python 3.6+ print("The value is {:_}".format(1000000))

Output:

The value is  : 1_000_000
:, สิ่งนี้จะส่งออกเครื่องหมายจุลภาคเป็นตัวคั่นหลักพัน print("The value is : {:,}".format(1000000))

Output:

The value is  : 1,000,000

เครื่องหมายจุลภาค(,) ถูกเพิ่ม เป็นตัวคั่นหลักพันตามที่แสดงในเอาต์พุต

: นี่จะเพิ่มช่องว่างก่อนตัวเลขบวกใดๆ ตัวอย่างนี้แสดงวิธีการเพิ่มช่องว่างหรือช่องว่างภายในก่อนหมายเลขที่กำหนด หมายเลข 5 ระบุจำนวนช่องว่างที่คุณต้องการก่อนหมายเลข

print("The value is: {:5}".format(40))

Output:

The value is:    40
:- นี่จะเพิ่มเครื่องหมายลบก่อนตัวเลขลบ ตัวอย่างนี้แสดงวิธีรับเอาต์พุตที่มีเครื่องหมายลบ (-) หน้าตัวเลขโดยใช้ {:-}

print("The value is: {:-}".format(-40))

Output:

The value is: -40
:+ คุณสามารถใช้เครื่องหมายบวกเพื่อระบุว่าตัวเลขเป็นค่าบวก ตัวอย่างแสดงวิธีรับเอาต์พุตที่มีเครื่องหมายบวก (+) หน้าตัวเลขโดยใช้ {:+}

print("The value is: {:+}".format(40))

Output:

The value is: +40
:= เท่ากับ ใช้วางเครื่องหมาย +/- ทางด้านซ้าย ตัวอย่างแสดงวิธีรับเอาต์พุตที่มีเครื่องหมายบวก (+/-) ก่อนเครื่องหมายเท่ากับโดยใช้ {:=}

print("The value is {:=}".format(-40))

Output:

The value is -40
:^ สิ่งนี้จะจัดกึ่งกลางผลลัพธ์สุดท้าย ตัวอย่างแสดงการใช้ {:^} เพื่อจัดแนวข้อความให้อยู่ตรงกลาง หมายเลข 10 ใช้เพื่อเพิ่มช่องว่าง 10 ช่องเพื่อแสดงการจัดกึ่งกลางเมื่อมีการแทนที่ค่า

print("The value {:^10} is positive value".format(40))

Output:

The value     40     is a positive value

ที่นี่ คุณสามารถใช้ 10 ซึ่งจะเพิ่มช่องว่าง 10 ช่องในข้อความสุดท้าย และค่าที่จะแทนที่จะจัดกึ่งกลางระหว่างช่องว่าง 10 ช่อง เพิ่มช่องว่าง 10 เพื่อแสดงการจัดตำแหน่งกึ่งกลางของค่าที่ถูกแทนที่

:> สิ่งนี้จะจัดตำแหน่งผลลัพธ์สุดท้ายให้ถูกต้อง เพิ่มช่องว่าง 10 โดยใช้ (:>10) และค่าที่ถูกแทนที่จะอยู่ชิดขวา

print("The value {:>10} is positive value".format(40))

Output:

The value         40 is positive value
:< นี่จะจัดตำแหน่งผลลัพธ์สุดท้ายทิ้งไว้ เพิ่มช่องว่าง 10 โดยใช้ (:<10) และค่าการแทนที่จะถูกจัดชิดซ้าย

print("The value {:<10} is positive value".format(40))

Output:

The value 40         is positive value

การใช้คลาสที่มีรูปแบบ ()

ในตัวอย่างนี้ เรากำลังสร้างคลาสและใช้อ็อบเจ็กต์ของคลาสภายใน .format Python วิธี. ตัวยึดตำแหน่งจะอ้างถึงคุณสมบัติของคลาสหรือสมาชิกที่ใช้วัตถุคลาส

ตัวอย่าง:

คลาสถูกเรียกภายในรูปแบบ (c=MyClass()) วัตถุ c จะมีการอ้างอิงถึงคุณสมบัติและวิธีการภายในคลาส MyClass()

class MyClass:
    msg1="Guru"
    msg2="Tutorials"   

print("Welcome to {c.msg1}99 {c.msg2}!".format(c=MyClass()))

Output:

Welcome to Guru99 Tutorials!

การใช้พจนานุกรมที่มีรูปแบบ ()

นอกจากนี้ยังสามารถใช้พจนานุกรมในรูปแบบ () ดังแสดงในตัวอย่างด้านล่าง:

my_dict = {'msg1': "Welcome", 'msg2': 'Guru99'}
print("{m[msg1]} to {m[msg2]} Tutorials!".format(m=my_dict))

Output:

Welcome to Guru99 Tutorials!

การทดแทนตัวแปรเสริม

เมื่อใช้เมธอด string.format() คุณสามารถเพิ่มช่องว่างภายในโดยใช้ตัวยึดตำแหน่งภายในสตริงของคุณได้

ตัวอย่าง:

ในตัวอย่างด้านล่าง เราจะเพิ่มช่องว่างภายใน Placeholder โดยใช้ format() หากต้องการเพิ่มช่องว่าง คุณต้องระบุจำนวนช่องว่างภายในวงเล็บปีกกาหลังเครื่องหมายโคลอน (:) ดังนั้น Placeholder จะมีลักษณะดังนี้ {:5}

print("I have {:5} dogs and {:5} cat".format(2,1))

Output:

I have     2 dogs and     1 cat

คุณยังสามารถระบุดัชนีภายในตัวยึดตำแหน่งได้ เช่น: {0:5} โดยที่ 0 จะอ้างอิงถึงค่าแรกภายในรูปแบบ

print("I have {0:5} dogs and {1:5} cat".format(2,1))

Output:

I have     2 dogs and     1 cat

คำถามที่พบบ่อย

สาย f เพิ่มเข้ามา Python 3.6 ฝังนิพจน์โดยตรงและโดยทั่วไปจะทำงานได้เร็วกว่า เมธอด format() ยังคงใช้งานได้ในเวอร์ชันเก่ากว่า Python เวอร์ชันต่างๆ และเมื่อเทมเพลตมาจากตัวแปร ไฟล์ หรือข้อมูลที่ผู้ใช้ป้อน

ตัวดำเนินการ % ใช้สัญลักษณ์แบบ printf เช่น %s และ %d ในขณะที่ format() ใช้วงเล็บปีกกาเป็นตัวแทนที่รองรับชื่อ ดัชนี และตัวระบุที่ซับซ้อนกว่า การจัดการการเรียงลำดับและการจัดวางที่สะอาดกว่าของ format() คือเหตุผลที่ format() เข้ามาแทนที่ % ในโค้ดสมัยใหม่

Double เหล็กดัดฟันเพื่อหนีจากพวกมัน ไทping วงเล็บปีกกาเปิดสองอันจะพิมพ์วงเล็บปีกกาจริงหนึ่งอัน และวงเล็บปีกกาปิดสองอันจะพิมพ์วงเล็บปีกกาปิดหนึ่งอัน ดังนั้นตัวยึดตำแหน่งจริงจึงยังคงใช้งานได้ควบคู่ไปกับวงเล็บปีกกาจริงภายในสตริงแม่แบบเดียวกัน

ค่าตำแหน่งที่หายไปจะทำให้เกิดข้อผิดพลาด IndexError และคำหลักหรือชื่อพจนานุกรมที่หายไปจะทำให้เกิดข้อผิดพลาด KeyError การส่งค่ามากกว่าค่าตัวยึดตำแหน่งนั้นอนุญาต และระบบจะละเว้นค่าส่วนเกิน ดังนั้นเฉพาะการอ้างอิงที่หายไปเท่านั้นที่จะทำให้เกิดข้อผิดพลาด ไม่ใช่การอ้างอิงที่เกินมา

เมธอด format() ทำงานใน Python 2.6 และทุกๆ Python เวอร์ชัน 3 การกำหนดหมายเลขฟิลด์อัตโนมัติ โดยที่วงเล็บปีกกาจะว่างเปล่าแทนที่จะเขียน {0} {1} จำเป็นต้องแก้ไข Python เวอร์ชัน 2.7 หรือ 3.1 ขึ้นไป

ลำดับ Python สตริงไม่สามารถเปลี่ยนแปลงได้ ดังนั้นเมธอด `format()` จะสร้างและส่งคืนสตริงใหม่โดยไม่เปลี่ยนแปลงเทมเพลต กำหนดผลลัพธ์ให้กับตัวแปร เช่น `message = template.format(value)` เพื่อเก็บข้อความที่จัดรูปแบบแล้วไว้ใช้ในภายหลัง

โค้ดแมชชีนเลิร์นนิงใช้ฟังก์ชัน format() เพื่อสร้างบันทึกที่อ่านง่าย รวบรวมเทมเพลตข้อความแจ้งเตือนสำหรับโมเดลภาษา และพิมพ์ค่าเมตริก เช่น ความแม่นยำเป็นทศนิยมคงที่ การจัดรูปแบบเอาต์พุตที่สะอาดตาทำให้การทดลองและรายงานโมเดลเปรียบเทียบได้ง่ายขึ้น

ใช่แล้ว GitHub Copilot จะเติมคำอัตโนมัติสำหรับการเรียกใช้ฟังก์ชัน format() และตัวระบุต่างๆ จากความคิดเห็นสั้นๆ ที่อธิบายถึงผลลัพธ์ที่คุณต้องการ ผู้ช่วย AI ของ Agentic ทำได้มากกว่านั้น โดยจะแปลง format() เป็นสตริง f-string แก้ไขการจัดเรียง และเรียกใช้การทดสอบของคุณโดยอัตโนมัติ

สรุปโพสต์นี้ด้วย: