4 ก.ค. 2020 เวลา 11:00 • วิทยาศาสตร์ & เทคโนโลยี
วันนี้เราจะมาพูดเรื่อง f-string ที่เคยพูดค้างไว้นะครับ
f-string เป็นตัวช่วยให้เราจัดการจัดระเบียบของ string ได้ ยกตัวอย่างเช่น
โดยข้อมูลที่ต้องการแสดง ส่วนมากแล้วจะเป็น string, int และ float
มีหัวข้อย่อยดังนี้
การใช้งานเบื้องต้น
การเพิ่มความยาวตามกำหนด
การเติมเลข 0 หน้าหรือหลัง int, float
การจัดการจำนวนจุดทศนิยม
การแสดงผลในรูปของสัญกรณ์วิทยาศาสตร์
เลขฐาน 2, ฐาน 8 และ ฐาน 16
การแทรก , และ _ ระหว่างตัวเลข เพื่อขั้นทีละ 3 หลัก
การใช้งานเบื้องต้น
ให้เราพิมพ์ f แล้วตามด้วย ‘ ’ โดยที่ข้างใน ‘ ’ จะเป็น ข้อมูลที่ต้องการแสดง ที่ถูกครอบด้วย { } ตามตัวอย่างด้านบน
การเพิ่มความยาวตามกำหนด
เพียงแค่เพิ่ม : แล้วตามด้วยตัวเลข เราจะได้ความยาวของสายอักขระ (นับหน้า : ด้วย) เท่ากับตัวเลขที่ป้อน ยกตัวอย่างเช่น
ซึ่งการกำหนดการชิดซ้าย กลาง ขวา ของข้อมูลที่ต้องการแสดง ทำได้โดยการเพิ่ม < ^ > ตามลำดับหน้าตัวเลขที่กรอก เช่น
หากเราเติมอักษรอะไรก็ตามแต่ไว้หน้าเครื่องหมาย < ^ หรือ > จะได้ว่าอักษรที่เราใส่ไปจะแทนที่ช่องว่างที่ควรจะเป็น
การเติมเลข 0 หน้าหรือหลัง int, float (ใช้กับตัวเลขเท่านั้น)
ให้เติม :0 และต่อท้ายด้วยจำนวนที่ต้องการหลัง อีกทั้งยังสามารถใช้ < ^ > ไว้หน้าเลข 0 เพื่อกำหนดตำแหน่ง int หรือ float ว่าอยู่ตรงไหน หรือจะใช้หัวข้อการเพิ่มความยาวช่วยก็ได้ เช่น
การจัดการจำนวนจุดทศนิยม
หากเราเติม :f จะได้ผลลัพธ์เป็นจำนวนจริงที่มีทศนิยม 6 ตำแหน่ง และหากต้องการจำนวนทศนิยมอื่นให้เติม . และตามด้วยจำนวนทศนิยมที่ต้องการ หน้า f
การแสดงผลในรูปของสัญกรณ์วิทยาศาสตร์
สัญกรณ์วิทยาศาสตร์คือรูปแบบของการเขียนตัวเลขอย่างหนึ่ง ซึ่งจะเขียนอยู่ในรูป a x 10**n (โดยที่ 1<=|a|<10 และ n เป็นจำนวนเต็มใด ๆ)
เช่น 55,643=5.5643 x 10**4 (ภาษาคอมพิวเตอร์จะเขียนเป็น 5.5643e+4
หรือ 5.5643E+4)
 
0.00007=7 x 10**(-5) (ภาษาคอมพิวเตอร์จะเขียนเป็น 7e-5 หรือ 7E-5)
ทาง Python มีการจัดการตัวเลขชนิดนี้อยู่สองแบบคือแสดงผลเป็นรูปสัญกรณ์วิทยาศาสตร์ และแสดงผลอัตโนมัติ (จะเป็นสัญกรณ์วิทยาศาสตร์หรือเลขทศนิยมธรรมดาก็ได้ คอมพิวเตอร์จะจัดการให้เราเองตามความเหมาะสม)
แสดงผลเป็นสัญกรณ์วิทยาศาสตร์ จะใช้ :. ตามด้วยจำนวนทศนิยมที่ต้องการ และตามด้วย e หรือใช้ E ตัวใหญ่ก็ได้เช่นกัน ยกตัวอย่างเช่น
แสดงผลอัตโนมัติ จะใช้ :. ตามด้วย g หรือใช้ G ตัวใหญ่ก็ได้เช่นกัน ยกตัวอย่างเช่น
เลขฐาน 2, ฐาน 8 และ ฐาน 16
ถ้าเติม :b จะเป็นการแปลงค่าให้เป็นเลขฐานสอง
:o จะเป็นการแปลงค่าให้เป็นเลขฐานแปด
:x จะเป็นการแปลงค่าให้เป็นเลขฐาน 16 (10-15=a-f)
:X จะเป็นการแปลงค่าให้เป็นเลขฐาน 16 (10-15=A-F)
ยกตัวอย่างดังต่อไปนี้
การแทรก , และ _ ระหว่างตัวเลขเพื่อขั้นทีละ 3 หลัก
เราสามารถเติม :, หรือ :_ ได้เลย แต่หากอยากใช้ตัวอื่นที่ไม่ใช่ , หรือ _ ในการขั้น ให้ทำคล้ายตัวอย่างต่อไปนี้
คำถามประจำบท
จงเขียนโปรแกรมต่อไปนี้ โดยใช้ f-string ช่วย
1. รับข้อมูลชื่อจากผู้ป้อนมา ตั้งชื่อว่า name แล้วแสดงผล name พร้อมกับมีช่องว่างทาง
ด้านซ้ายรวมกับความยาว name เป็น 30 ช่อง
2. จงแทนที่ช่องว่างในข้อ 1 ด้วย & และปรับให้ชื่ออยู่ตรงกลาง
3. จงรับค่าจากผู้ป้อนมาสองค่าคือ จำนวนเงินที่มีอยู่ขณะนี้ในธนาคาร(จำนวนจริง) ชื่อว่า money และ ดอกเบี้ยที่จะได้รับวันนี้ (จำนวนจริง) ชื่อ itr แล้วแสดงผลออกมาว่าเงินที่มีในบัญชีหลังจากวันนี้มีค่าเท่าใด (เอาแค่ทศนิยม 2 ตำแหน่ง และขั้นด้วย . ทุก ๆ 3 หลักด้วย) อีกทั้งให้ทำให้ผลลัพธ์อยู่ตรงกลาง และให้เพิ่มความยาวช่อง(แทนด้วย *) รวมความยาวของผลลัพธ์ เพิ่มอีก 30 ตัว
4. รับค่าจำนวนเต็มมา ตั้งชื่อว่า num จากนั้นแปลงให้เป็นเลขฐานแปด พร้อมทั้งจัดให้อยู่ตรงกลาง เพิ่มสัญลักษณ์ # อีก 20 ตัว รวมความยาวของเลขที่แปลงเป็นฐานแปดแล้ว
ถ้าใครมีคำถามหรือข้อเสนอแนะ comment มาได้นะครับ ยินดีรับฟังทุกความคิดเห็นเลย
เรื่องอื่นเพิ่มเติม: https://www.blockdit.com/articles/5eedede2db20a50cafa7a2b3
Created by MickeyMouse
โฆษณา