10.1 format()
Thường thì chúng ta phải in ra nhiều dữ liệu lên console (màn hình). Không phải
chúng ta là người đầu tiên gặp phải vấn đề này — vì vậy từ lâu trong Python đã có
hàm format()
, giúp
bạn kết hợp chuỗi và in dữ liệu ra màn hình dễ dàng và rõ ràng hơn.
Hàm format()
được dùng để chèn các giá trị vào
chuỗi tại các vị trí nhất định. Cú pháp của hàm trông như sau:
"Mẫu chuỗi từ {} đến {}".format(giá trị1, giá trị2,…)
Thực tế 1. Hàm format()
là hàm con
của chuỗi, nên nó được gọi từ một chuỗi. Thay vì truyền chuỗi vào hàm, chúng ta viết chuỗi, sau đó đặt dấu chấm, rồi
gọi hàm format()
và truyền các tham số vào hàm đó.
Thực tế 2. Hàm format()
điền vào
chuỗi mẫu bằng các giá trị được truyền vào. Nó chuyển đổi các giá trị thành chuỗi (nếu đó là số, chẳng hạn) và chèn
chúng vào các vị trí được đánh dấu bằng ký tự {}
. Một vị trí để chèn giá trị gọi là placeholder
.
Sử dụng cơ bản:
welcome_message = "Chào, {}, chào mừng đến với {}!"
print(welcome_message.format("Anna", "cửa hàng của chúng tôi"))
Kết quả:
"Chào, Anna, chào mừng đến với cửa hàng của chúng tôi!"
Định dạng số:
output = "Dữ liệu: {0:.2f} và {1:.2f}".format(3.1415926, 2.71828)
print(output)
Kết quả: "Dữ liệu: 3.14 và 2.72"
—
minh họa giới hạn đầu ra đến hai chữ số thập phân.
Sử dụng từ khóa:
output = "{name} làm việc tại {company}"
print(output.format(name="Sergey", company="Google"))
Kết quả:
"Sergey làm việc tại Google"
Việc sử dụng format()
cải thiện độ đọc và
khả năng duy trì của mã, cho phép dễ dàng thay đổi định dạng mà không
cần phải chỉnh sửa toàn bộ chuỗi.
10.2 f-string
Bắt đầu từ phiên bản 3.6, Python giới thiệu loại chuỗi mới — f-string
,
nghĩa là "formatted string". Những chuỗi này cải thiện
độ đọc của mã, đồng thời hoạt động nhanh hơn so với các cách khác
để định dạng.
Để sử dụng f-string
, thêm chữ cái
"f"
hoặc "F"
trước chuỗi. Các biểu thức để chèn
được đặt trong dấu ngoặc nhọn {}
:
Ví dụ:
force = "Mặt Tối"
message = f"Hãy để {force} ở bên bạn!"
print(message) # In ra: Hãy để Mặt Tối ở bên bạn!
Quan trọng! Trong dấu ngoặc nhọn có thể chỉ định biến, những biến này phải có sẵn trong phạm vi hiện tại (sẽ nói thêm sau) và Python tự động chuyển chúng thành chuỗi và chèn vào đúng nơi.
Ví dụ:
age = 28
message = f"Tôi {age} tuổi"
print(message) # In ra: Tôi 28 tuổi
Hơn nữa, bên trong dấu ngoặc nhọn có thể sử dụng biểu thức với nhiều biến.
Ví dụ:
birth_year = 1985
current_year = 2024
message = f"Tôi {current_year - birth_year} tuổi"
print(message) # In ra: Tôi 39 tuổi
Dưới lớp bên trong, tất cả điều này được chuyển đổi thành gọi hàm
format()
, nhưng cách tiếp cận mới này thật sự tiện lợi hơn.
Hãy sử dụng theo ý bạn.
10.3 Tham số sep
và end
Trong Python, hàm print()
cung cấp
hai tham số hữu ích — sep
và end
,
giúp quản lý đầu ra dữ liệu. Những tham số này làm cho
print()
linh hoạt hơn và có thể được sử dụng
để định dạng đầu ra mà không cần phải sử dụng
các hàm bổ sung hoặc các thao tác chuỗi phức tạp.
Tham số sep
xác định ký tự hay
chuỗi sẽ được sử dụng để phân tách các
giá trị truyền vào print()
. Mặc định sep
được thiết lập là khoảng trắng. Điều này có nghĩa là nếu bạn truyền
nhiều đối số vào print()
, chúng sẽ được phân cách
bằng khoảng trắng.
Và nếu bạn muốn dữ liệu được phân cách không phải bằng khoảng trắng, mà, ví dụ, bằng dấu phẩy, thì bạn cần thêm tham số sep ở cuối và gán cho nó chuỗi phân tách mới.
Ví dụ:
print("Hello", "world") # Kết quả: Hello world
print("Hello", "world", sep=", ") # Kết quả: Hello, world
Hoặc bạn có thể, ví dụ, làm thế nào để mỗi giá trị được in ra
trên một dòng mới. Khi đó tham số sep
cần gán cho
ký tự đặc biệt chuyển dòng — được biểu thị bằng cặp ký tự
“\n”
.
Ví dụ | Giải thích |
---|---|
|
|
Tham số end
xác định điều gì sẽ được in sau tất cả giá trị đã
truyền vào. Giá trị mặc định của end
là ký tự chuyển dòng (\n)
, điều này
có nghĩa là chuyển dòng sau khi thực hiện print()
.
Bằng cách thay đổi end
, bạn có thể quản lý cách dữ liệu được in ra, ví dụ,
để tiếp tục in trên cùng một dòng:
Ví dụ:
print("Hello", end=" ")
print("world") # Kết quả: Hello world
Sử dụng sep
và end
có thể cực kỳ hữu ích trong các kịch bản cần
định dạng đầu ra đặc biệt, ví dụ, khi tạo bảng, báo cáo hoặc in dữ liệu trên một dòng
mà không cần tự động chuyển sang dòng mới.
Không chỉ giúp đơn giản hóa mã và loại bỏ sự cần thiết phải thêm thủ công các ký tự phân tách
hoặc quản lý các chuyển đổi dòng, việc sử dụng sep
và end
còn nâng cao độ đọc và khả năng duy trì mã.
GO TO FULL VERSION