วิธีต่างๆ ของการจัดรูปแบบสตริงใน Python: วิธีการ 3 อันดับแรก

เผยแพร่แล้ว: 2021-02-23

การจัดรูปแบบสตริงเป็นคุณลักษณะที่จำเป็นในภาษาการเขียนโปรแกรมเพื่อจัดรูปแบบหรือแทรกค่าและตำแหน่งที่ผู้ใช้ระบุในสตริง ภาษา C มีวิธีหนึ่งที่จะทำสิ่งนี้ ซึ่งคุณอาจคุ้นเคย หากคุณมีประสบการณ์เกี่ยวกับภาษา C บ้าง อย่างไรก็ตาม Python ไม่สนับสนุน 1 ไม่ใช่ 2 แต่มี 3 วิธีในการจัดรูปแบบสตริง แต่ละวิธีมีข้อดีและข้อเสียที่เราจะได้เห็นในบทช่วยสอนนี้ เราจะมาดูกันว่า 3 วิธีใดเป็นวิธีที่ใช้และมีประสิทธิภาพมากที่สุด

เรียนรู้ หลักสูตรวิทยาศาสตร์ข้อมูลออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

ในตอนท้ายของบทช่วยสอนนี้ คุณจะทราบสิ่งต่อไปนี้:

  • วิธีต่างๆ ของการจัดรูปแบบสตริง
  • การใช้งานพร้อมตัวอย่าง
  • ทางไหนชอบที่สุด

สารบัญ

วิธีต่างๆ ของการจัดรูปแบบสตริง

Python ได้รับการอัปเดตหลายรายการเพื่อปรับปรุงการจัดรูปแบบสตริง มาทำความเข้าใจกันทีละคน

วิธีที่ 1: การจัดรูปแบบสตริงสไตล์ C

Python มีวิธีการจัดรูปแบบสตริงแบบเก่าโดยใช้อักขระพิเศษสำหรับแต่ละประเภทข้อมูล วิธีการจัดรูปแบบสตริงแบบเก่าที่ดีนี้ถูกนำมาใช้จากภาษา C และยังคงมีประสิทธิภาพมาก ตัวระบุรูปแบบสตริง “%” ตามด้วยอักขระเฉพาะสำหรับข้อมูลแต่ละประเภทใช้สำหรับจัดรูปแบบสตริง

มาดูตัวอย่างเล็ก ๆ เพื่อทำความเข้าใจสิ่งนี้:

นัม = 8
ชื่อ = “พิ้งแมน”
พิมพ์(“ชื่อคือ %s และหมายเลขคือ %d” %( ชื่อ num))

#ผลผลิต
>> “ชื่อชมพู่ เลข8”

ดังที่คุณเห็น ตัวระบุรูปแบบ %s ถูกใช้เพื่อจัดรูปแบบชื่อสตริง และ %d ถูกใช้เพื่อจัดรูปแบบเลขจำนวนเต็ม ในทำนองเดียวกัน มีตัวระบุรูปแบบสำหรับทุ่นเช่นกัน ลองตรวจสอบดูเช่นกัน

num = 4.32
ลิส = [ 1 , 3 , 5 ]
พิมพ์ ( “รายการคือ %s และลอยคือ %f” %(lis, num))

#ผลผลิต
>> รายการ คือ [ 1 , 3 , 5 ] และ จำนวน ลอย คือ 4.320000

ในตัวอย่างข้างต้น ฉันใช้ตัวระบุรูปแบบ %f เพื่อจัดรูปแบบค่าทศนิยม สองสิ่งที่ควรสังเกตที่นี่ หนึ่ง ค่าทศนิยมพิมพ์เป็น 4.320000 และไม่ใช่แค่ 4.32 ทำไมถึงเป็นเช่นนั้น? นี่เป็นเพราะว่าโดยค่าเริ่มต้น Python ใช้ความแม่นยำของจุดทศนิยม 6 จุดสำหรับการทศนิยม ประการที่สอง ฉันพิมพ์รายการโดยใช้ตัวระบุรูปแบบสตริง ไม่ได้หมายความว่าตัวระบุรูปแบบ %s สามารถรับข้อมูลประเภทใดก็ได้ มันแค่แปลงเป็นสตริงแล้วพิมพ์ออกมา ดังนั้นรายการที่พิมพ์จึงเป็นสตริง ไม่ใช่รายการ

เอาล่ะ จะระบุความแม่นยำของจุดทศนิยมได้อย่างไร?

พิมพ์ ("รายการคือ %s และลอยด้วยความแม่นยำ 2 จุดคือ %.2f" %(lis, num))

#ผลผลิต
>> รายการ คือ [ 1 , 3 , 5 ] และ float คือ 4.32

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

print(“list is %(a)s and float is %(b)f” %{“b”: num, “a”: lis})

#ผลผลิต
>> รายการ คือ [ 1 , 3 , 5 ] และ จำนวน ลอย คือ 4.320000

และอย่างที่คุณเห็น การเขียนนี้ยุ่งยากมาก

เพื่อสรุป 3 ตัวระบุรูปแบบที่ใช้บ่อยที่สุดคือ:

  1. %s สำหรับสตริง
  2. %d สำหรับจำนวนเต็ม
  3. %.<ความแม่นยำทศนิยม>f สำหรับทศนิยม

วิธีที่ 2: การจัดรูปแบบสตริงรูปแบบใหม่

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

ชื่อ = “สกายเลอร์”
print(“สวัสดี ฉันชื่อ {}”.format(name))

#ผลผลิต
>> สวัสดี ฉันชื่อ กายเลอร์

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

ตัวอย่างที่มีตัวเลขเช่นกัน:

นัม = 3
int = 4.34
ชื่อ = “เจสซี่”

พิมพ์ ( “สวัสดี ฉันชื่อ {} ตัวเลขคือ {} และ float คือ {}" .format(name, num, int))

#ผลผลิต
>> สวัสดี ฉันชื่อ เจ ซี่ เลข 3 และ ลอย คือ 4.34

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

print(“สวัสดี ฉันชื่อ {name} หมายเลขคือ {num} และ float คือ {int}”.format(int=int, num=num , name=name))

#ผลผลิต
>> สวัสดี ฉันชื่อ เจ ซี่ เลข 3 และ ลอย คือ 4.34

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

นอกจากนี้เรายังสามารถส่งผ่านตำแหน่งของตัวแปรในตัวยึดตำแหน่งเพื่อติดตามได้ดียิ่งขึ้น

print(“สวัสดี ฉันชื่อ {0} ตัวเลขคือ {1} และ float คือ {2}”.format(name, num, int))

#ผลผลิต
>> สวัสดี ฉันชื่อ เจ ซี่ เลข 3 และ ลอย คือ 4.34

วิธีที่ 3: การใช้ F-Strings

นำมาใช้ใน Python 3.6 f-strings เป็นวิธีที่ง่ายและมีประสิทธิภาพที่สุดในการจัดรูปแบบสตริง สิ่งเหล่านี้เรียกว่า ตัวอักษรสตริงที่จัดรูปแบบ พวกเขาใช้ตัวอักษร f ที่จุดเริ่มต้นของสตริงเพื่อบอก python ให้ถือว่าเป็นสตริงที่จัดรูปแบบ ตัวยึดตำแหน่งมีตัวแปรจริงที่ต้องวางในตำแหน่งนั้น

มาดูตัวอย่างกัน

ชื่อ = “ไฮเซนเบิร์ก”
bill = 100.43print(f”The name is {name} and the bill is {bill}”)

#ผลผลิต
>> ชื่อ ไฮเซน เบิร์ก ใบ เรียก เก็บ เงิน 100.43

มันค่อนข้างง่าย นอกจากนี้เรายังสามารถใส่นิพจน์โดยตรงแทนตัวแปรได้

a = 5
ข = 8

พิมพ์ ( f”ผลรวมคือ {a+b} )

#ผลผลิต
>> ผลรวม คือ 13

เราสามารถเรียกใช้ฟังก์ชันต่างๆ ได้โดยตรงและรับเอาต์พุตในตัวอักษรสตริง

พิมพ์ ( f” ชื่อคือ {name.upper()} )

#ผลผลิต
>> ชื่อ คือ ไฮเซนเบิร์ก

ยิ่งไปกว่านั้น เราสามารถใช้สตริง f เพื่อคืนค่าจากฟังก์ชันโดยตรงได้เช่นกัน

def combiner (ชื่อ, อายุ, เงิน):
return f”{name} มีอายุ {age} และมีเงินเดือน {money}”

ซาอูล กู๊ดแมน อายุ 45 ปี และ มี เงินเดือน 2000000

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

ชำระเงิน: คำถามและคำตอบสัมภาษณ์ Python

ก่อนที่คุณจะไป

การจัดรูปแบบสตริงเป็นงานปกติและวิธีที่ Python นำเสนอวิธีการจัดรูปแบบและสตริง f ทำให้คนที่ทำงานกับ Python เป็นเรื่องง่าย f-strings เป็นวิธีที่ใช้มากที่สุดและเป็นที่ต้องการในการทำงานกับการจัดรูปแบบสตริง เนื่องจากทำให้ง่ายต่อการเขียนและบำรุงรักษา นอกจากนี้ยังทำให้โค้ด Pythonic เพิ่มมากขึ้นอีกด้วย! ภายใต้ประทุน สตริง f ใช้โปรโตคอล __format__ ตัวอักษร f เป็นเพียงน้ำตาลประโยคที่ python เสนอให้ผู้ใช้ เพื่อให้เราเขียนการจัดรูปแบบสตริงได้ง่ายขึ้น

หากคุณอยากเรียนรู้เกี่ยวกับวิทยาศาสตร์ข้อมูล ลองดู โปรแกรม Executive PG ของ IIIT-B & upGrad ใน Data Science ซึ่งสร้างขึ้นสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 10 รายการ เวิร์กช็อปภาคปฏิบัติจริง การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม 1 -on-1 พร้อมที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

วิธีการจัดรูปแบบใดใน Python 3 ที่อนุญาตให้มีการจัดรูปแบบการแทนที่และการจัดรูปแบบค่าได้หลายแบบ

1. เมธอดรูปแบบสตริง () ในตัวของ Python จะแปลงสตริงที่ให้มาเป็นเอาต์พุตที่มีประโยชน์มากขึ้น ฟังก์ชัน format() ใน Python3 เป็นหนึ่งในวิธีการจัดรูปแบบสตริงที่ช่วยให้สามารถแทนที่ได้หลายแบบรวมถึงการจัดรูปแบบค่า วิธี format() ใช้การจัดรูปแบบตามตำแหน่งเพื่อเชื่อมรายการภายในสตริง
2. สตริงสามารถจัดรูปแบบได้โดยใช้วงเล็บปีกกาหลายคู่ หากจำเป็นต้องมีการแทนที่ตัวแปรอื่นในสตริงที่ยาว สามารถเพิ่มวงเล็บปีกกาชุดที่สองและส่งค่าที่สองไปยังโพรซีเดอร์ได้
3. ฟังก์ชัน format() ใน Python ยอมรับพารามิเตอร์จำนวนเท่าใดก็ได้ อย่างไรก็ตาม โดยหลักแล้ว พารามิเตอร์นี้จะแยกออกเป็นพารามิเตอร์สองประเภทต่อไปนี้เป็นหลัก
ก. พารามิเตอร์ตำแหน่งคือรายการของพารามิเตอร์ที่สามารถดึงข้อมูลได้โดยการวางดัชนีของพารามิเตอร์ไว้ในวงเล็บปีกกา (ดัชนี)
ข. พารามิเตอร์คำหลัก – นี่คือรายการของพารามิเตอร์คีย์=ค่าที่สามารถเข้าถึงได้โดยใช้คีย์ของพารามิเตอร์ภายในวงเล็บปีกกา
4. เมธอด format() ส่งกลับสตริงที่จัดรูปแบบแล้ว ฟังก์ชัน format() อ่านประเภทของอาร์กิวเมนต์ที่ให้มาและจัดรูปแบบตามโค้ดรูปแบบในสตริง

คุณจะพิมพ์โดยไม่ต้องขึ้นบรรทัดใหม่ใน Python 3 ได้อย่างไร

เพิ่มอาร์กิวเมนต์พิเศษให้กับวิธีการพิมพ์ของคุณใน Python 3 เพื่อบอกคอมพิวเตอร์ว่าคุณไม่ต้องการให้สตริงถัดไปอยู่ในบรรทัดใหม่ พิจารณาสถานการณ์สมมติต่อไปนี้
พิมพ์ ('ยินดีต้อนรับ!' สิ้นสุด = ')
ในกรณีนี้ ฟังก์ชันการพิมพ์เพิ่มเติมใดๆ จะปรากฏในบรรทัดเดียวกัน

เราสามารถแปลงสตริงเป็น float ใน Python ได้หรือไม่?

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