Python f-string format

f-string มีชื่อที่เป็นทางการคือ formated string literals เริ่มใช้งานมาตั้งแต่ Python 3.6 ใช้เพื่อทำการ format ข้อความที่ปรากฏ ซึ่งในภาพรวมแล้วมีความสะดวกกว่าการใช้ String.format() และช่วยลดข้อผิดพลาดในการเขียนโปรแกรม

การสร้าง f-string ทำได้โดยการเพิ่มอักษร f ไปข้างหน้าข้อความที่ต้องการ เช่น f"Hello World" , f"This is a prank"


การแทรก variable ในข้อความ

ทำได้โดยการล้อมชื่อ variable ด้วย "{}" แล้วนำไปวางในตำแหน่งที่ต้องการภายในข้อความ เช่น

  	
    	price = 50.00
        print(f"This book is {price} dollars.")
        # This book is 50.00 dollars.
        
        langs = ["Python","C","JavaScript"]
        print(f"{langs} are popular languages.")
        # ['Python','C','JavaScript'] are popular languages.
    
  

Evaluate expression

f-string สามารถตีความชุดคำสั่งได้แบบ real time

  	
    	import math
        
    	x = 5
        y = 2        
        print(f"Product of {x},{y} is {x * y}.")
        # Product of 5,2 is 10.
        
        print(f"Sqaure root of {x} is {math.sqrt(x)}.")
        #Sqaure root of 5 is 2.23606797749979.
        
    
  

f-string ยังสามารถใช้ร่วมกับ function ที่เขียนขึ้นเองได้ด้วย

  	
def caesar_encryptor(msg):
	encrypted = ""
	for x in msg :
		next_3 =  ord(x) + 3 # encryption
		encrypted = encrypted + chr(next_3)
	return encrypted
  
org_msg = "I LOVE YOU" 
print(f"Original message = '{org_msg}', encypted message = '{caesar_encryptor(org_msg)}'")
# Original message = 'I LOVE YOU', encypted message = 'L#ORYH#\RX'
	
  

รวมทั้งการใช้งานร่วมกับ Object

  	
class User:
    def __init__(self, name, occupation):
        self.name = name
        self.occupation = occupation

    def __repr__(self):
        return f"{self.name} is a {self.occupation}"

print(f'{User('John Doe', 'gardener')}')    
#John Doe is gardener
    
  

การใช้ Condition

รูปแบบการใช้ condition กับ f-string จะต่างออกไปจากการใช้กับ if หรือ while โดยมีรูปแบบดังนี้

    	
        <True block> if <condition> else <False block>
        
    
  	
    	x = 5
        print(f"{x} is {'even' if x % 2 == 0  else 'odd' }")
        # 5 is even
        
        x = 15
        print(f"{x} is {'even' if x % 2 == 0  else 'odd' }")
        # 15 is odd
    
  

การใช้กำหนดจำนวนเลขทศนิยมหรือรูปแบบวันที่

  	
import math
import datetime

# need to specify number of decimals
print(f" Pi is estimated as {math.pi:.4f}")
#Pi is estimated as 3.1416
        
now = datetime.datetime.now()
print(f'Today is {now:%Y-%m-%d %H:%M}')
# Today is 2022-06-28 12:33
	
  

ที่กล่าวมาทั้งหมดเป็นเพียงตัวอย่างส่วนหนึ่งของการใช้งาน f-string โดยเลือกเอาที่มักใช้งานบ่อย ซึ่งได้แก่

  • ♦ print values of variables
  • ♦ evaluate expressions
  • ♦ call methods on other Python objects
  • ♦ format number and datetime
ท่านสามารถอ่านเพิ่มเติมได้ที่ Python document ในส่วน Input and Output

ความคิดเห็น