Câu 1Hàm nào hiển thị một dict lồng nhau giữ nguyên cấu trúc với xuống dòng và thụt lề?
pprint — Hiển thị dict và list lồng nhau dễ đọc
print nén dict / list lồng nhau vào 1 dòng; dùng pprint.pp để xuống dòng và thụt lề, dùng pformat để lấy chuỗi đã định dạng đưa vào log, qua dữ liệu đơn hàng và cấu hình.
Khi bạn dùng print để debug, dict và list lồng nhau bị nhồi lên một dòng khó đọc suốt ngày. Module pprint (pretty-print) là công cụ thư viện chuẩn hiển thị cấu trúc lồng nhau với thụt lề và xuống dòng, cực kỳ hữu ích cho debug và log output.
pp và pformat — Một cái in, một cái trả về chuỗi
pprint có hai nhân vật chính. pprint.pp(value) là hàm định dạng và in trực tiếp ra stdout, trả về None. pprint.pformat(value) ngược lại, trả về chuỗi đã định dạng mà không in gì lên màn hình.
| Hàm | Mục đích | Giá trị trả về |
|---|---|---|
| pprint.pp(value) | định dạng và in ra stdout | None (in trực tiếp) |
| pprint.pformat(value) | trả về chuỗi đã định dạng | chuỗi đã định dạng |
| indent=N | độ rộng thụt lề (mặc định 1) | — |
| width=N | độ rộng dòng tối đa (mặc định 80) | — |
| sort_dicts=False | giữ thứ tự khóa của dict (Python 3.8+) | — |
Hiển thị cấu trúc với pprint.pp
pprint.pp(value) và print(value) trông giống nhau với giá trị đơn giản, nhưng output khác hẳn khi bạn có dict hoặc list lồng nhau — print nhồi mọi thứ lên một dòng, trong khi pp chèn xuống dòng và thụt lề tương ứng với độ sâu của cấu trúc.
Lấy chuỗi đã định dạng với pprint.pformat
pprint.pformat(value) trả về chuỗi đã định dạng mà không in gì. Hãy dùng pformat khi bạn muốn chuyển hướng output (đưa vào logger, ghép thêm thông tin trước/sau rồi in, hoặc nhúng vào thông báo lỗi). Các tùy chọn width=N và indent=N hoạt động giống như với pp.
Kiểm tra kiến thức
Hãy trả lời từng câu hỏi một.
Câu 2Bạn dùng cái nào để lấy chuỗi từ pprint và đưa vào output log?
Câu 3Làm sao để đổi độ rộng hiển thị của pprint.pp thành 40 ký tự?