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
ความคิดเห็น
แสดงความคิดเห็น