Định dạng chuỗi trong python bằng toán tử định dạng | Laptrinhcanban.com

Định dạng chuỗi trong python bằng toán tử định dạng

Hướng dẫn định dạng chuỗi trong python bằng toán tử định dạng ( tiếng Nhật:書式化演算子). Bằng cách sử dụng toán tử định dạng %, bạn có thể định dạng một số hoặc chuỗi và chèn vào chuỗi ban đầu để tạo thành một chuỗi mới. Cách làm này tương đồng với hàm printf trong các ngôn ngữ lập trình khác.

※ Cách định dạng chuỗi trong python bằng toán tử định dạng thực tế là cách làm cũ, chúng ta có thể gặp trong những script được viết từ cách đây rất lâu rồi nhưng vẫn được sử dụng tới ngày nay, như trong các script về lập trình AI từ những năm 2015 về trước.
Để không bỡ ngỡ khi gặp toán tử định dạng, bạn cần đọc bài viết này, nhưng bạn nên sử dụng một phương pháp thay thế hiện đại hơn, đó là dùng phương thức format hoặc là chuỗi f nhé.

Toán tử định dạng là gì

Trong python, chúng ta có thể sử dụng dấu % như là một toán tử để định dạng một số hoặc chuỗi. Cú pháp viết cơ bản dưới đây:

định dạng % giá trị

Trong đó định dạng và giá trị có thể ở số nhiều và:

  • định dạng là định dạng cần sử dụng. Định dạng này có thể là số nguyên cơ số 10,chuỗi ký tự,số thập lục phân v.v…
  • giá trị là giá trị cần định dạng.

※Về tổng quát, khi viết toán tử định dạng, chúng ta có thể chỉ định thêm nhiều option khác nữa như là map key ,flag v.v… Tuy nhiên trong phạm vi bài hướng dẫn học lập trình python cho người mới bắt đầu này, Kiyoshi xin phép được rút gọn và không giải thích sâu hơn mà chỉ giới thiệu cách viết cơ bản ở trên.

Bây giờ, hãy cùng xem một ví dụ đơn giản sau đây:

%s % Kiyoshi

ở ví dụ này, giá trị Kiyoshi được định dạng dưới dạng ký tự %s.
Còn ở ví dụ sau đây, giá trị 30 được định dạng dưới dạng một số nguyên thập phân %d.

%d % 30

Tạo chuỗi bằng toán tử định dạng trong python

Khi sử dụng toán tử định dạng trong chuỗi, giá trị có định dạng được chỉ định sẽ được chèn vào vị trí chứa định dạng trong chuỗi, với cú pháp sau đây:

chuỗi chứa định dạng % giá trị

chuỗi chứa định dạng % (giá trị 1, giá trị 2, giá trị 3…)

chuỗi chứa định dạng giống như dưới đây:

“Tên tôi là XX , tuổi là YY”

Khi chúng ta thay thế phần ký tự XX và YY ở trong chuỗi ở trên, chúng ta cần phải định dạng các giá trị dùng để thay vào. Và để định dạng XX và YY, chúng ta sẽ dùng toán tử định dạng %.
ở đây XX là tên, nên nó ở dạng chuỗi. Còn YY là tuổi, nên nó cần được định dạng ở dạng số thập phân. Giả sử chúng ta sử dụng %-8s : chuỗi 8 ký tự lùi về phía trái để định dạng XX, và %03d:số có 3 chữ số để định dạng YY như sau:

“Tên tôi là %-8s , tuổi là %03d”

Sau khi định dạng XX và YY, chúng ta sẽ chỉ định giá trị thay thế chúng như dưới đây:

“Tên tôi là %-8s , tuổi là %03d” % (“Kiyoshi”,30)

Sau đó sử dụng hàm in để in ra màn hình như sau:

gioithieu =  "Tên tôi là %-8s , tuổi là %03d" % ("Kiyoshi",30)
print(gioithieu)

#>> Tên tôi là Kiyoshi , tuổi là 030

Sau đây, chúng ta sẽ tìm hiểu một số ví dụ cụ thể hơn.

chỉ định định dạng và giá trị ở dạng số ít

em = 'Tôi yêu %s' % 'Trang'
print(em)
#>> Tôi yêu Trang

em = 'Tôi yêu %s' % 'Đào'
print(em)
#>> Tôi yêu Đào

em = 'Tôi yêu %s' % 'Mận'
print(em)
#>> Tôi yêu Mận

Bạn có thể thấy các giá trị Trang, Đào , Mận có định dạng chuỗi ký tự %s được chèn vào vị trí có chứa định dạng %s trong chuỗi.

chỉ định định dạng và giá trị ở dạng số nhiều

em='Tôi yêu %s và ghét %s' % ("Trang","Đào")
print(em)
#>> Tôi yêu Trang và ghét Đào


em='Tôi yêu %(key1)s và ghét %(key2)s' % {'key1':'Trang','key2':'Đào'}
print(em)
#>> Tôi yêu Trang và ghét Đào

Trong ví dụ này, các giá trị Trang, Đào được chỉ định và thay thế ở các vị trí khác nhau trong chuỗi.

chỉ định nhiều kiểu định dạng và giá trị

num = 30
print("dạng thập phân: %d ,dạng thập lục phân: %x" % (num, num))

#>> dạng thập phân: 30 ,dạng thập lục phân: 1e

Trong ví dụ này, giá trị của biến num lần lượt được chuyển ổ sang các định dạng thập phân %d và thập lục phần %x và thay thế vào các vị trí tương ứng trong chuỗi.

Dùng toán tử định dạng trong hàm số

Bạn cũng có thể dùng toán tử định dạng trong hàm số tự tạo như ví dụ sau đây:

def mypoint(str1, num1):
result = "Tôi tên %-10s, số điểm point là %5d." % (str1, num1)
print(result)

mypoint("Kiyoshi", 15)
#>> Tôi tên Kiyoshi , số điểm point là 15.

mypoint("Duy An",1925)
#>> Tôi tên Duy An , số điểm point là 1925.

Trong ví dụ này, chúng ta tạo một hàm in ra tên và số điểm point tích lũy của từng người. Giá trị của chuỗi được chỉ định đồn về bên trái, giá trị của số được chỉ định gồm 5 chữ số.

Các loại toán tử định dạng trong python

ở các ví dụ trên, chúng ta đã biết một số định dạng hay dùng như chuỗi ký tự %s, số thập phân %d. Ngoài một số định dạng này, chúng ta còn có thể sử dụng nhiều loại định dạng khác nhau nữa, như bảng dưới đây:

Định dạngÝ nghĩa
dSố nguyên thập phân có dấu
iSố nguyên thập phân có dấu
oSố bát phân có dấu
uKiểu mới của d
xSố thập lục phân có dấu(chữ thường)
XSố thập lục phân có dấu(chữ hoa)
esố biểu diễn dưới dạng ký hiệu khoa học
Esố biểu diễn dưới dạng ký hiệu khoa học
fKý hiệu điểm cố định
FKý hiệu điểm cố định
gSố điểm nổi
GSố điểm nổi
cký tự
rchuyển đối ký tự bằng hàm repr()
schuyển đối ký tự bằng hàm str()
achuyển đối ký tự bằng hàm ascii()

Ví dụ như muốn chỉ định só dạng bát phân thì chúng ta dùng %o, số dạng thập lục phân thì chúng ta dùng %x.

print("hệ cơ số 10 = %d, hệ cơ số 16 = %x" % (20, 20))

#>> hệ cơ số 10 = 20, hệ cơ số 16 = 14

Hoặc như muốn viết một số dưới dạng ký hiệu khoa học

print("Ký hiệu khoa học=%e, kí hiệu điểm cố định=%f" % (0.0752, 0.0752))
#>> Ký hiệu khoa học=7.520000e-02, kí hiệu điểm cố định=0.075200

Tổng kết và thực hành

Trên đây Kiyoshi đã hướng dẫn bạn cách tạo chuỗi bằng toán tử định dạng trong python 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.