Chuyển đến nội dung chính

Nội Suy Chuỗi trong Python: Hướng Dẫn Cho Người Mới Bắt Đầu

Tìm hiểu về nội suy chuỗi trong Python, mục đích và thời điểm sử dụng. Bao gồm ví dụ thực tiễn và các phương pháp hay nhất.
· 10 phút đọc

Khám phá cùng AI

Giả sử bạn muốn xuất ra tên và nghề nghiệp của một người. Bạn có thể viết một chương trình đơn giản như sau.

# Define variables
name = 'Mark'
profession = 'Astronaut'
age = 7


# Output info
output_string = ('My name is ' + name +
                ', I am ' + str(age) + ' years old ' +
                'and my profession is ' + profession + '.')
print(output_string)
   My name is Mark, I am 7 years old and my profession is Astronaut.

Cách làm đó thiếu cô đọng và khó đọc. May mắn thay, nội suy chuỗi mang đến một giải pháp tốt hơn. Nó cho phép chèn trực tiếp biến, biểu thức hoặc kết quả hàm vào bên trong chuỗi, giúp thao tác chuỗi linh hoạt và loại bỏ nhu cầu nối chuỗi thủ công.

Sử dụng cách tiếp cận nội suy chuỗi, chúng ta có thể viết lại đoạn mã như sau.

# Define variables
name = 'Mark'
profession = 'Astronaut'
age = 7


# Output info
output_string = f'My name is {name}, I am {age} years old and my profession is {profession}.'
print(output_string)
   My name is Mark, I am 7 years old and my profession is Astronaut.

Phiên bản dùng nội suy chuỗi cho phép nhúng biểu thức trực tiếp trong chuỗi mà không cần các phép nối rối rắm. Như bạn thấy, đây là cách tiếp cận gọn gàng hơn nhiều.

Nội Suy Chuỗi Cơ Bản trong Python

Có một số kỹ thuật nội suy chuỗi khác nhau trong Python. Phương pháp được khuyến nghị phổ biến nhất là formatted string literals, còn gọi là f-strings, có từ Python 3.6.

Một phương pháp khác, thường thấy trong mã cũ hơn Python 3.6, là phương thức .format(). Dù dài dòng hơn f-strings, đôi khi nó có ưu điểm riêng (chi tiết bên dưới).

Cuối cùng, bạn có thể bắt gặp định dạng kiểu % trong mã kế thừa.

Dùng f-strings (Python 3.6+)

f-strings (formatted string literals) là cách mạnh mẽ và ngắn gọn để định dạng chuỗi trong Python. Được giới thiệu từ Python 3.6, chúng cung cấp cách chèn biến, biểu thức và lời gọi hàm trực tiếp vào chuỗi một cách dễ đọc và hiệu quả.

Ví dụ đơn giản về cú pháp cơ bản của f-string như sau.

name = 'Mark'
output_string = f'My name is {name}.'
print(output_string)
   My name is Mark.

Trong đoạn mã này, biến output_string được gán một f-string. Tiền tố f trước dấu nháy mở cho biết chuỗi hỗ trợ nhúng biểu thức. Biến name được đánh giá và giá trị của nó được chèn vào chuỗi, tạo ra kết quả: "My name is Mark."

Không chỉ giá trị biến, mà cả phép tính hay biểu thức cũng có thể được chèn vào f-strings. Xem ví dụ sau.

import math


a = 3.0
b = 4.0


# Use string interpolation for the formula
print(f'The hypotenuse of a triangle with base {a} and side {b} is {math.sqrt(a ** 2 + b ** 2)}.')
   The hypotenuse of a triangle with base 3.0 and side 4.0 is 5.0.

Biểu thức math.sqrt(a ** 2 + b ** 2) được đánh giá trực tiếp trong chuỗi, loại bỏ nhu cầu tính toán riêng rồi mới chèn vào chuỗi.

Dùng phương thức .format()

Giống f-strings, phương thức .format() cho phép chèn biến và biểu thức vào chuỗi. Cú pháp cơ bản của phương thức .format() như sau.

name = 'Mark'
output_string = 'My name is {}.'.format(name)
print(output_string)
   My name is Mark.

Dấu ngoặc nhọn {} đóng vai trò làm chỗ trống, báo hiệu rằng giá trị của một biến sẽ được chèn vào vị trí đó trong chuỗi. Biến cụ thể nào được chèn vào chỗ trống được xác định bởi đối số truyền cho phương thức .format().

Đối số theo vị trí

Nếu bạn cần nhiều chỗ trống cho nhiều biến thì sao? Xem đoạn mã sau.

name = 'Mark'
age = 7


# The placeholders are filled in order of the arguments
output_string = 'My name is {} and I am {} years old.'.format(name, age)


print(output_string)
   My name is Mark and I am 7 years old.

Trong ví dụ này, cần hai biến, name và age. Do đó, chuỗi có hai chỗ trống và các biến được chèn theo đúng thứ tự xuất hiện trong phương thức .format(). Những đối số này được gọi là *đối số theo vị trí* vì vị trí của chúng trong chuỗi được quyết định bởi vị trí trong danh sách đối số của phương thức.

Chỗ trống theo chỉ mục và theo tên

Như một biến thể của ý tưởng chỗ trống, hãy xem ví dụ này.

name = 'Mark'
age = 7


# Print age twice
output_string = 'My name is {} and I am {} years old. My twin brother is also {} years old.'.format(name, age, age)
print(output_string)
   My name is Mark and I am 7 years old. My twin brother is also 7 years old.

Ở đây, chúng ta dùng lại giá trị của biến age hai lần. Việc đưa cùng một biến nhiều lần như vậy khá lằng nhằng và giảm tính dễ đọc. Có cách nào tái sử dụng một biến trong chuỗi định dạng bằng phương thức .format() mà không lặp lại không? Có, bằng các *chỗ trống theo chỉ mục*.

name = 'Mark'
age = 7


# Use indexed placeholders
output_string = 'My name is {0} and I am {1} years old. My twin brother is also {1} years old.'.format(name, age)
print(output_string)
   My name is Mark and I am 7 years old. My twin brother is also 7 years old.

Trong ví dụ này, chúng ta xác định rõ thứ tự biến bên trong dấu ngoặc nhọn, theo chỉ mục bắt đầu từ 0 của Python. Ngoài ra, ta tái sử dụng biến ở chỉ mục 1 thay vì lặp lại nó.

Thay vì đánh chỉ mục theo vị trí, bạn cũng có thể dùng đối số theo tên, trong đó mỗi đối số được gán một tên.

print('My name is {name} and I am {age} years old.'.format(name='Mark', age=7))
   My name is Mark and I am 7 years old.

Đối số theo tên được đánh giá trong dấu ngoặc nhọn chỉ định tên của nó. Do đó, chỗ trống {name} sẽ được thay bằng giá trị "Mark", và chỗ trống {age} sẽ được thay bằng 30.

Dùng toán tử %

Phương pháp cuối cùng cho nội suy chuỗi là toán tử %. Nó hoạt động tương tự lệnh printf() trong C. Cách dùng này đã lỗi thời và bị khuyến cáo mạnh mẽ, nên ưu tiên f-strings hoặc phương thức .format(). Nó được nhắc đến ở đây vì bạn có thể gặp trong các codebase cũ.

Định dạng cơ bản của toán tử % là: "format string" % values. Chuỗi định dạng chứa các chỗ trống, như %s cho chuỗi, sẽ được thay thế bởi các giá trị. Ví dụ, ví dụ sau in "Hello, Mark."

'Hello %s' % 'Mark'
   'Hello Mark'

Các chỉ thị định dạng thông dụng khác được hiển thị trong bảng sau.

Chỉ thị

Ý nghĩa

Ví dụ

%s

Chuỗi

"Hello %s" % "Alice" → "Hello Alice"

%d

Số nguyên (thập phân)

"Age: %d" % 25 → "Age: 25"

%f

Số thực (mặc định 6 chữ số thập phân)

"Pi: %f" % 3.14159 → "Pi: 3.141590"

%.nf

Số thực (n chữ số thập phân)

"%.2f" % 3.14159 → "3.14"

%x

Hex (chữ thường)

"%x" % 255 → "ff"

%X

Hex (chữ hoa)

"%X" % 255 → "FF"

%o

Bát phân

"%o" % 255 → "377"

Toán tử % có nhiều hạn chế. Chẳng hạn, nó kém dễ đọc hơn f-strings. Xem đoạn mã sau.

name = "Alice"
age = 30
height = 5.6


# The % operator is hard to scan
message = "My name is %s, I am %d years old, and my height is %.1f feet." % (name, age, height)
print(message)
   My name is Alice, I am 30 years old, and my height is 5.6 feet.

Đoạn mã này có rõ ràng ngay khi nhìn lướt qua không? Có lẽ là không. Có quá nhiều thao tác dò tìm trực quan giữa các chỗ trống và biến điền vào. Rất dễ rối (hoặc chóng mặt) với việc đảo mắt qua lại đó.

Giờ hãy xem mã tương đương dùng f-strings.

# This is much cleaner
message = f"My name is {name}, I am {age} years old, and my height is {height:.1f} feet."
print(message)
   My name is Alice, I am 30 years old, and my height is 5.6 feet.

Không cần dò tìm và không cần chuỗi định dạng khó hiểu. Mã sạch, dễ hiểu và dễ viết. Bạn có thể học thêm mẹo viết mã rõ ràng, tối ưu với Python Programming skill track của DataCamp. 

Kỹ Thuật Nội Suy Chuỗi Python Nâng Cao

Giờ khi đã nắm vững cơ bản về nội suy chuỗi trong Python, hãy xem một số cách dùng nâng cao hơn. 

Nội suy chuỗi nhiều dòng trong Python

f-strings cũng có thể dùng cho nội dung nhiều dòng bằng cách dùng tiền tố f với dấu nháy ba (đơn hoặc kép). Văn bản có thể trải dài nhiều dòng và sẽ xuất ra đúng như định dạng.

name = 'Mark'
profession = 'Astronaut'
age = 7


# This is an example of a multiline string
bio = f"""
Name: {name}
Profession: {profession}
Age: {age}
"""
print(bio)
   Name: Mark

   Profession: Astronaut

   Age: 7

 Chuỗi nhiều dòng cũng có thể được tạo bằng phương thức .format().

name = 'Mark'
profession = 'Astronaut'
age = 7


# This is a multiline string with .format()
bio = """
Name: {}
Profession: {}
Age: {}
""".format(name, profession, age)
print(bio)
   Name: Mark

   Profession: Astronaut

   Age: 7

Các trường hợp sử dụng nội suy chuỗi nhiều dòng

Tại sao bạn muốn dùng nội suy chuỗi nhiều dòng? Có rất nhiều trường hợp sử dụng. Dưới đây là vài ví dụ:

  • Tạo email hoặc tin nhắn nhiều dòng
  • Ghi log và gỡ lỗi
  • Tạo truy vấn SQL động

Tạo email hoặc tin nhắn nhiều dòng

Giả sử bạn đang gửi thư mẫu cho nhiều khách mời của một hội nghị công nghệ.

name = "Alice"
event = "Annual Tech Conference"
date = "March 15, 2025"


email = """Dear {name},


We are pleased to invite you to the {event} taking place on {date}.
We hope you can join us for an exciting experience.


Best regards, 
The Event Team""".format(name=name, event=event, date=date)


print(email)
   Dear Alice,

  

   We are pleased to invite you to the Annual Tech Conference taking place on March 15, 2025.

   We hope you can join us for an exciting experience.

  

   Best regards, 

   The Event Team

Với f-strings, việc tạo thư mẫu trở nên đơn giản và hiệu quả. Để thay đổi tên, sự kiện hoặc ngày, chỉ cần thay trong biến và chuỗi sẽ tự động cập nhật.

Ghi log và gỡ lỗi

Chuỗi nhiều dòng hữu ích để in thông báo lỗi cho log.

error_code = 404
url = '/missing-page'
timestamp = '2025-02-05 12:30:00'
error_message = 'The requested page could not be found.'


log_message = f"""[ERROR {error_code}]
Time: {timestamp}
URL: {url}


{error_message}"""


print(log_message)
   [ERROR 404]

   Time: 2025-02-05 12:30:00

   URL: /missing-page

 

   The requested page could not be found.

Cách này giúp thông điệp log có cấu trúc và giúp gỡ lỗi dễ hơn nhờ định dạng phù hợp.

Tạo truy vấn SQL động

Có thể xây dựng truy vấn SQL động bằng chuỗi nhiều dòng.

table = 'users'
column = 'email'
value = '[email protected]'


query = f"""SELECT *
FROM {table}
WHERE {column} = '{value}';"""


print(query)
   SELECT *

   FROM users

   WHERE email = '[email protected]';

Cách này giúp truy vấn SQL dễ đọc và giữ nguyên thụt dòng. Hơn nữa, nó loại bỏ nhu cầu dùng + để nối chuỗi.

Các trường hợp khác bao gồm:

  • Soạn thảo hợp đồng có định dạng
  • Tạo tài liệu Markdown hoặc $\LaTeX$
  • Mẫu HTML/XML nhiều dòng
  • Tạo phản hồi API hoặc văn bản giống JSON

Ưu điểm của nội suy chuỗi nhiều dòng

Như ta thấy, có một số ưu điểm của nội suy chuỗi nhiều dòng.

  • Nội suy chuỗi giữ nguyên định dạng mà không cần ký tự xuống dòng \n. 
  • Nội suy chuỗi cải thiện khả năng đọc so với định dạng một dòng. 
  • Nội suy chuỗi giảm lộn xộn khi làm việc với văn bản có cấu trúc (ví dụ: log, truy vấn, báo cáo). 
  • Nội suy chuỗi cho phép tạo văn bản động mà vẫn giữ nguyên thụt dòng. 

Định dạng số và giá trị đặc biệt

Để kiểm soát số chữ số thập phân hiển thị bằng f-string, dùng cú pháp: f'{value:.nf}', trong đó value là số thực, n là số chữ số thập phân, và f (chữ sau dấu .) biểu thị định dạng số thực.

Ví dụ, đoạn mã sau xuất $\pi$ với số chữ số thập phân khác nhau.

pi = 3.1415926535


print(f'Pi rounded to 2 decimal places: {pi:.2f}')
print(f'Pi rounded to 4 decimal places: {pi:.4f}')
print(f'Pi rounded to 0 decimal places: {pi:.0f}')
   Pi rounded to 2 decimal places: 3.14
   Pi rounded to 4 decimal places: 3.1416
   Pi rounded to 0 decimal places: 3

Định dạng với phương thức .format() cũng tương tự.

print('Pi rounded to 2 decimal places: {:.2f}'.format(pi))
print('Pi rounded to 4 decimal places: {:.4f}'.format(pi))
print('Pi rounded to 0 decimal places: {:.0f}'.format(pi))
   Pi rounded to 2 decimal places: 3.14
   Pi rounded to 4 decimal places: 3.1416
   Pi rounded to 0 decimal places: 3

Bạn có thể dùng f-string để định dạng phần trăm bằng cú pháp :.nf kết hợp với %, trong đó n là số chữ số thập phân.

score = 0.875
print(f"Success rate: {score:.2%}")
   Success rate: 87.50%

Bạn có thể dùng f-string để định dạng tiền tệ bằng :, để phân tách hàng nghìn và .nf để kiểm soát số chữ số thập phân. Bạn cũng có thể chèn trực tiếp ký hiệu tiền tệ như $, €, hoặc £ vào chuỗi.

amount = 98765.4321


print(f"USD: ${amount:,.2f}")
print(f"EUR: €{amount:,.2f}")
print(f"GBP: £{amount:,.2f}")
   USD: $98,765.43

   EUR: €98,765.43

   GBP: £98,765.43

Dùng f-strings với dictionary và list

Để dùng f-strings với dictionary trong Python, truy cập giá trị bằng cú pháp ngoặc vuông bên trong dấu ngoặc nhọn (dict['key']) hoặc giải nén dictionary bằng **.

person = {
   'name': 'Alice',
   'age': 30,
   'city': 'New York'
}


print(f"My name is {person['name']}, I am {person['age']} years old, and I live in {person['city']}.")
   My name is Alice, I am 30 years old, and I live in New York.

Thay vì truy cập từng khóa thủ công, bạn có thể giải nén dictionary vào một f-string như sau.

person = {
   'name': 'Alice',
   'age': 30,
}


print(f'My name is {name} and I am {age} years old.'.format(**person))
   My name is Alice and I am 7 years old.

Để tránh lỗi khi thiếu khóa, dùng get() khi truy cập dictionary.

person = {"name": "Alice"}


# Error: key 'city' is missing
print(f"City: {person['city']}") 
   ---------------------------------------------------------------------------




   KeyError                                  Traceback (most recent call last)




   Cell In[87], line 4

         1 person = {"name": "Alice"}

         3 # Error: key 'city' is missing

   ----> 4 print(f"City: {person['city']}")







   KeyError: 'city'
print(f"City: {person.get('city', 'Not specified')}")
   City: Not specified

Ưu Nhược Điểm của Các Phương Pháp Nội Suy Chuỗi

Như đã thấy, f-strings và phương thức .format() đều hữu ích cho nội suy chuỗi. Hãy so sánh ưu và nhược điểm của từng phương pháp.

Tính năng

f-strings

.format()

Định dạng %

Khả năng đọc

🟢 Tốt nhất

🟡 Ổn

🔴 Khó hơn

Hiệu năng

🟢 Nhanh nhất

🟡 Chậm hơn

🔴 Chậm nhất

Hỗ trợ biểu thức

🟢 Có

🟡 Gián tiếp

🔴 Không

Hỗ trợ nhiều dòng

🟢 Có

🟢 Có

🔴 Không

Dễ sử dụng

🟢 Dễ nhất

🟡 Trung bình

🔴 Khó

Gỡ lỗi (= Operator)

🟢 Có (Python 3.8+)

🔴 Không

🔴 Không

Khi nào nên dùng .format() thay cho f-strings?

Ưu điểm

Vì sao dùng .format()

Hỗ trợ Python cũ

Hoạt động trên Python 2.7+

Thứ tự linh hoạt

Cho phép sắp xếp lại chỗ trống dễ dàng

Định dạng động

Hoạt động khi chỉ thị định dạng là động

Xử lý ngoặc {} tốt hơn

Tránh phải escape thủ công thêm

Hoạt động tốt với dictionary

Dễ dùng khóa của dict hơn

Lỗi Phổ Biến và Thực Hành Tốt Nhất

Dưới đây là một số cách xử lý sự cố và mẹo hàng đầu khi dùng nội suy chuỗi trong Python. 

Tránh lỗi cú pháp với dấu ngoặc nhọn

Có nhiều lỗi cú pháp có thể mắc phải khi dùng nội suy chuỗi liên quan đến dấu ngoặc nhọn.

  • Đảm bảo mỗi { có một } tương ứng
print('Hello, my name is {name!'}
     Cell In[96], line 1

       print('Hello, my name is {name!'}
                                       ^
   SyntaxError: closing parenthesis '}' does not match opening parenthesis '('

May mắn là lỗi khá rõ ràng và cách sửa cũng dễ.

  • Dùng {{ và }} để hiển thị {}

Nếu bạn muốn in dấu ngoặc nhọn trong chuỗi nội suy thì sao? Bất cứ thứ gì bên trong dấu ngoặc nhọn sẽ (cố gắng) được đánh giá.

print(f'Set notation: {a, b, c}')
   ---------------------------------------------------------------------------

   NameError                                 Traceback (most recent call last)

   Cell In[101], line 1

   ----> 1 print(f'Set notation: {a, b, c}')

   NameError: name 'c' is not defined

Python diễn giải a, b, c bên trong dấu ngoặc nhọn là một tuple, cố gắng tìm giá trị gắn với a. Vì không có biến như vậy, nó ném ra KeyError. Cách sửa là dùng dấu ngoặc nhọn kép {{}}.

print("Set notation: {{a, b, c}}")

   Set notation: {{a, b, c}}

So sánh hiệu năng: f-strings vs .format()

Hãy so sánh hiệu năng của f-strings và .format().

import timeit


name = "Alice"
age = 30
pi = 3.1415926535


# Measure f-string performance
f_string_time = timeit.timeit('f"My name is {name} and I am {age} years old."', globals=globals(), number=1000000)


# Measure .format() performance
format_time = timeit.timeit('"My name is {} and I am {} years old.".format(name, age)', globals=globals(), number=1000000)


# Measure f-string performance with expressions
f_string_expr_time = timeit.timeit('f"Pi rounded to 2 decimal places: {pi:.2f}"', globals=globals(), number=1000000)


# Measure .format() performance with expressions
format_expr_time = timeit.timeit('"Pi rounded to 2 decimal places: {:.2f}".format(pi)', globals=globals(), number=1000000)


# Print results
print(f"f-string (simple): {f_string_time:.6f} seconds")
print(f".format() (simple): {format_time:.6f} seconds")
print(f"f-string (with expression): {f_string_expr_time:.6f} seconds")
print(f".format() (with expression): {format_expr_time:.6f} seconds")
   f-string (simple): 0.080447 seconds

   .format() (simple): 0.129860 seconds

   f-string (with expression): 0.123171 seconds

   .format() (with expression): 0.146242 seconds

Như bạn thấy, xét về hiệu quả, nên ưu tiên f-strings so với .format().

Thực hành tốt để nội suy chuỗi sạch và dễ đọc

Để đảm bảo định dạng chuỗi của bạn rõ ràng, hiệu quả và dễ bảo trì, hãy làm theo các thực hành tốt sau khi dùng chuỗi nội suy.

  • Ưu tiên f-strings vì tính dễ đọc (Python 3.6+)
# Recommended
name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")


# Not Recommended (Less readable)
print("My name is {} and I am {} years old.".format(name, age))


# Avoid using % formatting (Outdated)
print("My name is %s and I am %d years old." % (name, age))
   My name is Alice and I am 30 years old.

   My name is Alice and I am 30 years old.

   My name is Alice and I am 30 years old.
  • Dùng chỗ trống theo tên để rõ ràng
# Named placeholders (readable)
user = {"name": "Alice", "age": 30}
print(f"My name is {user['name']} and I am {user['age']} years old.")


# Using indexes in .format() (not as readable)
print("My name is {0} and I am {1} years old.".format("Alice", 30))
   My name is Alice and I am 30 years old.

   My name is Alice and I am 30 years old.
  • Giữ chuỗi nhiều dòng dễ đọc.
name = "Alice"
age = 30


message = f"""Hello, {name}!


We are happy to invite you to our event.
At {age} years old, you are eligible for the VIP pass.


Best regards,
Event Team
"""
print(message)
   Hello, Alice!


   We are happy to invite you to our event.

   At 30 years old, you are eligible for the VIP pass.


   Best regards,

   Event Team  
  • Dùng f-strings trong Logging để gỡ lỗi tốt hơn

Python 3.8 trở đi hỗ trợ = để gỡ lỗi trong f-strings.

value = 42


# Output: value = 42
print(f"{value = }") 
   value = 42

Kết luận

Nội suy chuỗi là một tính năng mạnh mẽ trong Python giúp định dạng chuỗi gọn gàng, dễ đọc và hiệu quả hơn. Trong các phương pháp hiện có, f-strings là cách hiện đại và được khuyến nghị nhất, mang lại hiệu năng, độ rõ ràng và tính linh hoạt tốt hơn so với các phương pháp cũ như .format() và % định dạng. 

Bằng cách tuân theo các thực hành tốt như dùng chỗ trống theo tên, kiểm soát độ chính xác thập phân, căn chỉnh văn bản để dễ đọc và xử lý khéo léo khóa thiếu trong dictionary, bạn có thể viết định dạng chuỗi trong Python sạch, chuyên nghiệp và dễ bảo trì. 

Dù bạn đang tạo báo cáo định dạng, thông điệp nhiều dòng hay đầu ra dữ liệu có cấu trúc, f-strings cung cấp cách đơn giản nhưng mạnh mẽ để tích hợp biến và biểu thức một cách liền mạch. Áp dụng f-strings sẽ không chỉ cải thiện chất lượng mã mà còn nâng cao hiệu quả. 

Để biết thêm về nội suy chuỗi Python, hãy xem các tài nguyên của DataCamp:

Câu hỏi thường gặp về Nội Suy Chuỗi Python

Nội suy chuỗi trong Python là gì?

Nội suy chuỗi là quá trình chèn trực tiếp biến, biểu thức hoặc kết quả hàm vào chuỗi. Python hỗ trợ thông qua f-strings, .format(), và định dạng %.

f-strings có sẵn trong mọi phiên bản Python không?

Không, f-strings được giới thiệu từ Python 3.6. Nếu bạn dùng phiên bản cũ hơn, bạn sẽ cần dùng .format() hoặc định dạng %.

Vì sao f-strings được ưa chuộng hơn .format() và định dạng %?

f-strings nhanh hơn, dễ đọc hơn và ngắn gọn hơn so với .format() và định dạng %. Chúng cho phép nhúng biến trực tiếp và biểu thức nội tuyến, nhờ đó hiệu quả hơn.

Tôi có thể dùng f-strings với dictionary không?

Có, bạn có thể truy cập giá trị dictionary trong f-strings:

user = {"name": "Alice", "age": 30}
print(f"My name is {user['name']} and I am {user['age']} years old.")

Ngoài ra, có thể giải nén dictionary:

print(f"My name is {name} and I am {age}.".format(**user))
Làm thế nào để định dạng số bằng f-strings?

Bạn có thể kiểm soát số chữ số thập phân và thêm dấu phân tách hàng nghìn bằng các chỉ thị định dạng:

pi = 3.14159
print(f"Pi: {pi:.2f}")
Mark Pedigo

Tác giả

Mark Pedigo

Mark Pedigo, PhD, là một nhà khoa học dữ liệu xuất sắc với chuyên môn về khoa học dữ liệu trong y tế, lập trình và giáo dục. Với bằng Tiến sĩ Toán học, Cử nhân Khoa học Máy tính và Chứng chỉ Chuyên nghiệp về AI, Mark kết hợp hiểu biết kỹ thuật với khả năng giải quyết vấn đề thực tiễn. Sự nghiệp của anh bao gồm các vai trò trong phát hiện gian lận, dự đoán tử vong ở trẻ sơ sinh và dự báo tài chính, cùng với những đóng góp cho phần mềm ước tính chi phí của NASA. Là một nhà giáo dục, anh đã giảng dạy tại DataCamp và Đại học Washington ở St. Louis, đồng thời cố vấn cho các lập trình viên trẻ. Trong thời gian rảnh, Mark thích hoạt động ngoài trời ở Minnesota cùng vợ là Mandy và chú chó Harley, và chơi piano jazz.

Chủ đề

Liên quan