วิธีต่างๆ ของการจัดรูปแบบสตริงใน 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 ตัวระบุรูปแบบที่ใช้บ่อยที่สุดคือ:
- %s สำหรับสตริง
- %d สำหรับจำนวนเต็ม
- %.<ความแม่นยำทศนิยม>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 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ
1. เมธอดรูปแบบสตริง () ในตัวของ Python จะแปลงสตริงที่ให้มาเป็นเอาต์พุตที่มีประโยชน์มากขึ้น ฟังก์ชัน format() ใน Python3 เป็นหนึ่งในวิธีการจัดรูปแบบสตริงที่ช่วยให้สามารถแทนที่ได้หลายแบบรวมถึงการจัดรูปแบบค่า วิธี format() ใช้การจัดรูปแบบตามตำแหน่งเพื่อเชื่อมรายการภายในสตริง เพิ่มอาร์กิวเมนต์พิเศษให้กับวิธีการพิมพ์ของคุณใน Python 3 เพื่อบอกคอมพิวเตอร์ว่าคุณไม่ต้องการให้สตริงถัดไปอยู่ในบรรทัดใหม่ พิจารณาสถานการณ์สมมติต่อไปนี้ 1. พวกเขาเป็นวัตถุสตริงถ้าเราได้รับค่าทศนิยมผ่านการป้อนข้อมูลของผู้ใช้ผ่านทางเทอร์มินัลเช่นเดียวกับการอ่านจากไฟล์ ด้วยเหตุนี้ เราจึงต้องแปลงเป็นทศนิยมอย่างชัดแจ้ง เพื่อดำเนินการที่จำเป็น เช่น การบวก การคูณ และอื่นๆวิธีการจัดรูปแบบใดใน Python 3 ที่อนุญาตให้มีการจัดรูปแบบการแทนที่และการจัดรูปแบบค่าได้หลายแบบ
2. สตริงสามารถจัดรูปแบบได้โดยใช้วงเล็บปีกกาหลายคู่ หากจำเป็นต้องมีการแทนที่ตัวแปรอื่นในสตริงที่ยาว สามารถเพิ่มวงเล็บปีกกาชุดที่สองและส่งค่าที่สองไปยังโพรซีเดอร์ได้
3. ฟังก์ชัน format() ใน Python ยอมรับพารามิเตอร์จำนวนเท่าใดก็ได้ อย่างไรก็ตาม โดยหลักแล้ว พารามิเตอร์นี้จะแยกออกเป็นพารามิเตอร์สองประเภทต่อไปนี้เป็นหลัก
ก. พารามิเตอร์ตำแหน่งคือรายการของพารามิเตอร์ที่สามารถดึงข้อมูลได้โดยการวางดัชนีของพารามิเตอร์ไว้ในวงเล็บปีกกา (ดัชนี)
ข. พารามิเตอร์คำหลัก – นี่คือรายการของพารามิเตอร์คีย์=ค่าที่สามารถเข้าถึงได้โดยใช้คีย์ของพารามิเตอร์ภายในวงเล็บปีกกา
4. เมธอด format() ส่งกลับสตริงที่จัดรูปแบบแล้ว ฟังก์ชัน format() อ่านประเภทของอาร์กิวเมนต์ที่ให้มาและจัดรูปแบบตามโค้ดรูปแบบในสตริง คุณจะพิมพ์โดยไม่ต้องขึ้นบรรทัดใหม่ใน Python 3 ได้อย่างไร
พิมพ์ ('ยินดีต้อนรับ!' สิ้นสุด = ')
ในกรณีนี้ ฟังก์ชันการพิมพ์เพิ่มเติมใดๆ จะปรากฏในบรรทัดเดียวกัน เราสามารถแปลงสตริงเป็น float ใน Python ได้หรือไม่?
2. วิธี float() ใน Python สามารถใช้เพื่อแปลงสตริงเป็น float เป็นฟังก์ชันในตัวสำหรับแปลงตัวเลขทศนิยมเป็นวัตถุ ภายในฟังก์ชัน float() จะเรียกใช้ฟังก์ชัน __float__() ของอ็อบเจกต์ที่ให้มา