Căn trái, căn giữa và căn phải một chuỗi trong Python (ljust, center, rjust, zfill) | Laptrinhcanban.com

Căn trái, căn giữa và căn phải một chuỗi trong Python (ljust, center, rjust, zfill)

Hướng dẫn cách căn trái, căn giữa và căn phải một chuỗi trong Python. Bạn sẽ học được cách căn lề trong chuỗi python bằng các phương thức có sẵn như ljust, center, rjust, zfill trong bài viết này.

Chúng ta có 4 phương pháp để căn lề chuỗi trong python như sau:

  • Phương thức ljust() : Căn lề trái một chuỗi trong Python
  • Phương thức center() : Căn lề giữa một chuỗi trong Python
  • Phương thức rjust() : Căn lề phải một chuỗi trong Python
  • Phương thức zfill() : Căn lề phải một chuỗi và lấp khoảng trắng trong chuỗi bằng số 0.

Căn lề trái một chuỗi trong Python | phương thức ljust()

Căn lề trái một chuỗi trong Python

Chúng ta căn lề trái một chuỗi trong Python bằng phương thức ljust() với cú pháp sau đây:

org_str.ljust(width,fillchar)

Trong đó:

  • str là chuỗi ký tự cần căn lề
  • ljust là tên phương thức
  • width là chiều dài chỉ định của chuỗi kết quả sau khi căn lề. Giá trị của này có thể lớn hơn hoặc nhỏ hơn độ dài ban đầu của chuỗi str. Lưu ý chúng ta phải chỉ định width khi dùng phương thức ljust() trong python.
  • fillchar là một ký tự dùng để lấp chỗ trống. Nếu độ dài chuỗi str nhỏ hơn width thì sẽ xuất hiện chỗ trống khi in ra màn hình. Nếu chỉ định fillchar, ký tự được chỉ định sẽ được dùng để lấp các chỗ trống này. Nếu không chỉ định fillchar thì ký tự khoảng trống sẽ được dùng. Lưu ý là chỉ có thể chỉ định giá trị fillchar bằng một ký tự, nếu không lỗi TypeError sẽ xảy ra.

Về cách tìm độ dài của chuỗi ký tự trong python, hãy xem tại bài: Tính độ dài chuỗi trong python.

Ví dụ cụ thể, chúng ta sẽ sử dụng phương thức ljust() để căn lề trái một chuỗi trong Python như sau:

str1="học lập trình"
print("[" + str1.ljust(20) + "]")
#>> [học lập trình ]

str2 ="10082019"
print("[" + str2.ljust(10) + "]")
#>> [10082019 ]

Lưu ý là phương thức ljust() không thay đổi chuỗi ban đầu, mà dùng chuỗi ban đầu để tạo ra chuỗi mới được căn trái mà thôi.
Ví dụ:

org_str= "abc"
print(org_str)

new_str= org_str.ljust(5)
print("[" + new_str + "]")
print(org_str)

#>> abc
#>> [abc ]
#>> abc

Căn lề trái một chuỗi trong Python và lấp khoảng trắng trong chuỗi bằng một ký tự chỉ định

Nếu chỉ định đối số fillchart trong phương thức ljust, giá trị của fillchart sẽ được dùng để lấp chỗ trống của chuỗi kết quả sau khi căn lề trái, trong trường hợp độ dài chuỗi kết quả (width) lớn hơn độ dài chuỗi ban đầu.

Ví dụ:

print("Apple".ljust(8, "_"))
#>> Apple___

print("Apple".ljust(8, "p"))
#>> Appleppp

print("Apple".ljust(8, "+"))
#>> Apple+++

Lưu ý là chúng ta chỉ có thể sử dụng một ký tự chỉ định để lấp chỗ trong chuỗi kết quả. Nếu dùng hơn 2 ký tự chỉ định thì lỗi ypeError sẽ trả về như dưới đây:

print("Apple".rjust(8, "*+"))

#raceback (most recent call last):
# File "Main.py", line 1, in <module>
# print("Apple".rjust(8, "*+"))

Căn lề giữa một chuỗi trong Python |phương thức center()

Căn lề giữa một chuỗi trong Python

Chúng ta sử dụng phương thức center() để căn giữa một chuỗi trong Python. Cú pháp của center() tương tự như với phương thức ljust() ở trên.

Chúng ta viết:

str.center(width,fillchar)

Trong đó str là chuỗi cần căn giữa, center để gọi phương thức, còn width để chỉ định chiều dài chuỗi kết quả và fillchar là một ký tự dùng để lấp chỗ trống trong chuỗi nếu có.

Ví dụ:

str1="học lập trình"
print("[" + str1.center(20) + "]")
#>> [ học lập trình ]

str2 ="10082019"
print("[" + str2.center(20) + "]")
#>> [ 10082019 ]

Lưu ý là phương thức center() cũng không thay đổi chuỗi ban đầu, mà dùng chuỗi ban đầu để tạo ra chuỗi mới được căn trái mà thôi.
Ví dụ:

org_str= "abc"
print(org_str)

new_str= org_str.center(5)
print("[" + new_str + "]")
print(org_str)

#>> abc
#>> [ abc ]
#>> abc

Căn lề giữa một chuỗi trong Python và lấp khoảng trắng trong chuỗi bằng một ký tự chỉ định

Nếu chỉ định đối số fillchart trong phương thức center, giá trị của fillchart sẽ được dùng để lấp chỗ trống của chuỗi kết quả sau khi căn lề giữa, trong trường hợp độ dài chuỗi kết quả (width) lớn hơn độ dài chuỗi ban đầu.

Ví dụ:

print("Apple".center(8, "_"))
#>> _Apple__

print("Apple".center(8, "p"))
#>> pApplepp

print("Apple".center(8, "+"))
#>> +Apple++

Lưu ý là chúng ta chỉ có thể sử dụng một ký tự chỉ định để lấp chỗ trong chuỗi kết quả. Nếu dùng hơn 2 ký tự chỉ định thì lỗi ypeError sẽ trả về như dưới đây:

print("Apple".center(8, "*+"))

#raceback (most recent call last):
# File "Main.py", line 1, in <module>
# print("Apple".center(8, "*+"))

Căn lề phải một chuỗi trong Python |phương thức rjust()

Căn lề phải một chuỗi trong Python

Chúng ta sử dụng phương thức rjust() để căn lề phải một chuỗi trong Python. Cú pháp của rjust() tương tự như với phương thức ljust() ở trên.

str.rjust(width,fillchar)

Trong đó str là chuỗi cần căn lề phải, rjust để gọi phương thức, còn width để chỉ định chiều dài chuỗi kết quả và fillchar là một ký tự dùng để lấp chỗ trống trong chuỗi nếu có.

Ví dụ:

str1="học lập trình"
print("[" + str1.rjust(20) + "]")
#>> [ học lập trình]

str2 ="10082019"
print("[" + str2.rjust(20) + "]")
#>> [ 10082019]

Lưu ý là phương thức rjust() cũng không thay đổi chuỗi ban đầu, mà dùng chuỗi ban đầu để tạo ra chuỗi mới được căn trái mà thôi.
Ví dụ:

org_str= "abc"
print(org_str)

new_str= org_str.rjust(5)
print("[" + new_str + "]")
print(org_str)

#>> abc
#>> [ abc]
#>> abc

Căn lề phải một chuỗi trong Python và lấp khoảng trắng trong chuỗi bằng một ký tự chỉ định

Nếu chỉ định đối số fillchart trong phương thức center, giá trị của fillchart sẽ được dùng để lấp chỗ trống của chuỗi kết quả sau khi căn lề phải, trong trường hợp độ dài chuỗi kết quả (width) lớn hơn độ dài chuỗi ban đầu.

Ví dụ:

print("Apple".rjust(8, "_"))
#>> ___Apple

print("Apple".rjust(8, "p"))
#>> pppApple

print("Apple".rjust(8, "+"))
#>> +++Apple

Lưu ý là chúng ta chỉ có thể sử dụng một ký tự chỉ định để lấp chỗ trong chuỗi kết quả. Nếu dùng hơn 2 ký tự chỉ định thì lỗi ypeError sẽ trả về như dưới đây:

print("Apple".rjust(8, "*+"))

#raceback (most recent call last):
# File "Main.py", line 1, in <module>
# print("Apple".rjust(8, "*+"))

Chỉ định width nhỏ hơn hoặc bằng độ dài chuỗi ban đầu khi sử dụng các phương thức ljust, center, rjust

Nếu như chúng ta chỉ định giá trị width - độ dài chuỗi kết quả nhỏ hơn hoặc bằng với độ dài chuỗi ban đầu, kết quả trả về sẽ chính là chuỗi ban đầu như ví dụ sau đây:

print("Apple".ljust(3))
#>> Apple

print("Apple".center(3))
#>> Apple

print("Apple".rjust(3))
#>> Apple

print("Apple".ljust(5))
#>> Apple

Căn lề phải một chuỗi và lấp khoảng trắng trong chuỗi bằng số 0 | phương thức zfill()

Chúng ta sử dụng phương thức zfill để căn lề phải và dùng ký tự số “0” để lấp khoảng trắng trong chuỗi python. Nói một cách đơng giản hơn thì chúng ta dùng zfill để đệm số 0 vào đầu chuỗi Python cho đủ độ dài chỉ định.

Cú pháp sử dụng zfill() trong Python như sau:

str.zfill(width)

Trong đó width là độ dài của chuỗi kết quả thu về của phương thức zfill. Và nếu độ dài này lớn hơn độ dài của chuỗi str thì ký tự 0 sẽ được dùng để lấp các ký tự còn thiếu.

Cách sử dụng thực tiễn của phương thức zfill giống như ví dụ sau đây:

print("89".zfill(5))
#>> 00089

print("abc".zfill(6))
#>> 000abc

Trong trường hợp width - độ dài của chuỗi kết quả nhỏ hơn hoặc bằng với độ dài của chuỗi ban đầu thì chuỗi ban đầu sẽ được trả về:

print("12345".zfill(3))
#>> 12345

print("12345".zfill(5))
#>> 12345

Bạn có thể thấy phương thức zfill cũng cho kết quả giống với khi chúng ta dùng phương thức rjustr với đối số fillchar bằng 0.
Tuy nhiên điều khác biệt ở đây là nếu chúng ta chỉ định dấu + hoặc - vào trước chuỗi ký tự str, thì phương thức zfill sẽ lấp chỗ trống bằng ký tự số 0 bắt đầu từ sau dấu + hoặc -, còn phương thức rjust với đối số fillchar bằng 0 sẽ chỉ đơn giản lấp chỗ trống từ trước dấu + hoặc - mà thôi. Hãy xem kỹ ví dụ sau đây:

Sử dụng phương thức zfill

print("-123".zfill(8))
#>> -0000123

print("+975".zfill(8))
#>> +0000975

Sử dụng phương thức rjust với fillchar bằng 0

print("-123".rjust(8,"0"))
#>> 0000-123

print("+975".rjust(8,"0"))
#>> 0000+975

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách căn trái, căn giữa và căn phải một chuỗi trong Python bằng các phương thức có sẵn như ljust, center, rjust, zfill 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.