Định dạng chuỗi trong python bằng chuỗi f | Laptrinhcanban.com

Định dạng chuỗi trong python bằng chuỗi f

Hướng dẫn cách định dạng chuỗi trong python bằng chuỗi f. Đây là phương thức định dạng chuỗi mới nhất được tích hợp từ Python 3.6, với cách viết trực tiếp và đơn giản hơn là những điểm cộng của phương pháp này.

Bạn cũng có thể tham khảo các cách định dạng chuỗi trong python khác như dưới đây:

Định dạng chuỗi trong python bằng chuỗi f

Để định dạng chuỗi trong python, chúng ta sử dụng chuỗi f với cú pháp sau đây:

f“abc{value:pattern}xyz”

Trong đó:

  • Ký tự f hoặc F đầu chuỗi biểu thị việc chúng ta sẽ sử dụng chuỗi f để định dạng chuỗi trong python.
  • abcxyz là các ký tự bất biến trong chuỗi cần định dạng, và {value:pattern} là phần trong chuỗi cần được định dạng.
  • pattern là định dạng chuỗi. Trong pattern chứa trường thay thế (field) giúp định dạng chuỗi và được thay thế bởi giá trị thay thế chỉ định trong value.

Nói một cách đơn giản, chúng ta định dạng chuỗi trong python bằng cách viết ký tự f hoặc F vào đằng trước chuỗi, rồi tiến hành gán giá trị thay thế vào trường thay thế. Sau đó chúng ta biến đối giá trị thay thế vừa gán cho hợp với định dạng trong trường thay thế và hoàn tất quá trình.

Ví dụ:

str_format = f"Kiyoshi is {30:03d} years old"
print(str_format)

#>Kiyoshi is 030 years old

Trong ví dụ trên, chúng ta gán giá trị 30 vào trường thay thế {:3d} có định dạng là một số có 3 chữ số. Sau khi gán giá trị 30, chúng ta dùng định dạng số có 3 chữ số để biến đổi giá trị thành 030 và in kết quả ra màn hình.

Chúng ta cũng có thể dùng phương thức format để định dạng chuỗi trong python, hãy cùng so sánh sự khác nhau về cách sử dụng của hai phương pháp này nhé.

a = 123
b = 'abc'

#Định dạng chuỗi trong python sử dụng phương thức format
print('{:<5d} and {:3s}'.format(a, b))

#Định dạng chuỗi trong python sử dụng chuỗi f
print(f'{a:<5d} and {b:>3s}')

Cả hai đều đưa ra cùng kết quả:

123   and abc

Bạn có thể thấy cả hai phương pháp ở trên đều đưa ra kết quả giống nhau, tuy nhiên cách định dạng chuỗi trong python bằng chuỗi f thì trực quan, đơn giản và dễ viết hơn rất nhiều.

Cách định dạng các trường thay thế trong chuỗi f

Về căn bản thì cách định dạng các trường thay thế trong chuỗi f giống như cách định dạng các trường thay thế trong phương thức format mà bạn có thể tham khảo chi tiết tại đây.
Phần dưới đây chúng ta sẽ cùng tìm hiểu các cách định dạng các trường thay thế trong chuỗi f thông qua các ví dụ cụ thể nhé.

Định dạng chuỗi trong python bằng cách căn lề chuỗi

s = 'abc'

print(f'right : {s:_>8}')
print(f'center: {s:_^8}')
print(f'left : {s:_<8}')
# right : _____abc
# center: __abc___
# left : abc_____

Định dạng chuỗi trong python bằng cách lấp chỗ trống bằng số 0

i = 1234

print(f'zero padding: {i:08}')
# zero padding: 00001234

Định dạng chuỗi trong python với dấu phân tách số

i = 1234

print(f'comma: {i:,}')
# comma: 1,234

Định dạng chuỗi trong python với cách biểu diễn khác nhau của số

print(f'bin: {i:b}')
print(f'oct: {i:o}')
print(f'hex: {i:x}')
# bin: 10011010010
# oct: 2322
# hex: 4d2

print(f'bin: {i:#b}')
print(f'oct: {i:#o}')
print(f'hex: {i:#x}')
# bin: 0b10011010010
# oct: 0o2322
# hex: 0x4d2

Định dạng chuỗi trong python với độ chính xác của phần phân số

f = 12.3456

print(f'digit(decimal): {f:.3f}')
print(f'digit(all) : {f:.3g}')
# digit(decimal): 12.346
# digit(all) : 12.3

Định dạng chuỗi với kiểu giá trị trong chuỗi

print(f'exponen: {f:.3e}')
# exponen: 1.235e+01

Định dạng chuỗi trong python với số dưới dạng phần trăm

f = 0.123

print(f'percent: {f:.2%}')
# percent: 12.30%

So sánh phương pháp định dạng chuỗi trong python bằng chuỗi f và bằng phương thức format

Có thể viết biểu thức tính toán trong trường thay thế của chuỗi f.

Khi chúng ta viết biểu thức tính toán trong trường thay thế của phương thức format, lỗi KeyError sẽ xảy ra:

a = 3
b = 4
print('{a} + {b} = {a + b}'.format(a=a, b=b))

Lỗi KeyError, do chúng ta đã viết biểu thức tính toán {a + b}:

Traceback (most recent call last):
File "Main.py", line 3, in <module>
print('{a} + {b} = {a + b}'.format(a=a, b=b))
KeyError: 'a + b'

Tuy nhiên chúng ta lại có thể viết biểu thức tính toán trong trường thay thế của chuỗi f.

print(f'{a} + {b} = {a + b}')
# 3 + 4 = 7

print(f'{a} * {b} = {a * b}')
# 3 * 4 = 12

print(f'{a} / {b} = {a / b:.2e}')
# 3 / 4 = 7.50e-01

Cách sử dụng Dictionary làm giá trị thay thế trong chuỗi f và phương thức format khác nhau

Khi dùng key và value của dictionary làm giá trị thay thế, với phương thức format, chúng ta không cần viết dấu ' hoặc " vào trước key sử dụng.
Tuy nhiên với chuỗi f thì ngược lại, chúng ta cần thêm ' hoặc " vào trước key, nếu không, lỗi sẽ xảy ra:

d = {'key1': 3, 'key2': 4}

#Sử dụng key dictionary với phương thức format
print('{0[key1]}, {0[key2]}'.format(d))


#Sử dụng key dictionary với chuỗi f
print(f'{d["key1"]}, {d["key2"]}')

Cả hai đều đưa ra cùng một kết quả, chỉ có cách viết là khác nhau.

3, 4

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách định dạng chuỗi trong python bằng chuỗi f rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.