Page 55 - Python Simple
P. 55
7. Vào và ra http://www.vithon.org/tutorial/2.5/node9.html
Bài chỉ dẫn Python
7. Vào và ra
Có nhiều các để thể hiện đầu ra của một chương trình; dữ liệu có thể được in ra ở
dạng người đọc được, hoặc viết vào một tập tin để dùng sau này. Chương này sẽ
bàn về một vài khả năng đó.
7.1 Định dạng ra đẹp hơn
Chúng ta đã gặp hai cách để viết giá trị: câu lệnh biểu thức và câu lệnh print .
(Cách thứ ba là dùng phương thức write() của đối tượng tập tin; tập tin đầu ra
chuẩn có thể được tham chiếu tới theo sys.stdout. Xem Tham khảo thư viện
Python để biết thêm chi tiết.)
Thông thường bạn sẽ muốn điều khiển cách định dạng đầu ra của bạn nhiều hơn
là chỉ đơn giản là in các giá trị phân cách bởi khoảng trắng. Có hai cách để định
dạng đầu ra của bạn; cách thứ nhất là bạn tự xử lý các chuỗi; dùng phép cắt
miếng của chuỗi và phép ghép chuỗi bạn có thể tạo bất kỳ bố cục nào bạn có thể
nghĩ ra. Mô-đun chuẩn string chứa một vài công cụ để đệm chuỗi khít vào chiều
ngang cột; chúng ta sẽ xem xét nó lát nữa. Cách thứ hai là dùng toán tử % với
một chuỗi là thông số bên trái. Toán tử % thông dịch thông số trái như là một
chuỗi định dạng kiểu sprintf() (như trong C) để áp dụng vào thông số bên
phải; và trả về một chuỗi từ tác vụ định dạng này.
Một câu hỏi vẫn còn đó: làm sao để chuyển giá trị thành chuỗi? May mắn thay
Python có một cách để chuyển bất kỳ giá trị nào thành chuỗi: truyền nó vào hàm
repr() hay hàm str() . Dấu nháy ngược (``) tương đương với repr(), nhưng
chúng không còn được dùng trong mã Python mới, và rất có thể sẽ không còn
trong các phiên bản ngôn ngữ sau này.
str() nhằm để trả về cách thể hiện giá trị một cách dễ đọc, trong khi repr()
nhằm để tạo cách thể hiện mà trình thông dịch có thể đọc (hoặc sẽ sinh lỗi
SyntaxError nếu không có cú pháp tương đương). Đối với các đối tượng không
có cách thể hiện cho người đọc, str() sẽ trả về cùng giá trị như repr(). Nhiều
giá trị, ví dụ như số, hoặc cấu trúc như danh sách và từ điển, có cùng cách thể
hiện với cả hai hàm này. Riêng chuỗi và số chấm động có hai cách thể hiện khác
biệt.
Một vài ví dụ:
>>> s = 'Hello, world.'
>>> str(s)
'Hello, world.'
>>> repr(s)
"'Hello, world.'"
1 of 7 08/31/2011 10:26 AM