Page 57 - Python Simple
P. 57
7. Vào và ra http://www.vithon.org/tutorial/2.5/node9.html
(Chú ý một khoảng trắng được thêm vào giữa các cột theo cách hoạt động của
print : nó luôn luôn thêm khoảng trắng giữa các thông số.)
Ví dụ này biểu diễn phương thức rjust() của các đối tượng chuỗi, nó canh phải
một chuỗi vào trong trường với độ rộng xác định bằng cách thêm khoảng trống
vào bên trái. Các phương thức tương tự khác gồm ljust() và center(). Các
phương thức này không viết gì cả, chúng chỉ trả về một chuỗi mới. Nếu chuỗi
nhập vào quá dài, chúng cũng không cắt nó đi, mà trả về nó nguyên vẹn; điều
này thường sẽ phá hỏng bố cục của bạn, nhưng vẫn tốt hơn là nói dối về một giá
trị. (Nếu bạn thật sự muốn cắt bỏ bạn có thể thêm phép cắt miếng, như
"x.ljust(n)[:n]".)
Có một phương thức khác, zfill(), nó đệm không vào bên trái một chuỗi số.
Nó hiểu các dấu cộng và trừ:
>>> '12'.zfill(5)
'00012'
>>> '-3.14'.zfill(7)
'-003.14'
>>> '3.14159265359'.zfill(5)
'3.14159265359'
Dùng toán tử % sẽ giống như vậy:
>>> import math
>>> print 'The value of PI is approximately %5.3f.' % math.pi
The value of PI is approximately 3.142.
Nếu có nhiều hơn một định dạng trong chuỗi, bạn cần truyền một bộ ở toán hạng
bên phải, như trong ví dụ này:
>>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}
>>> for name, phone in table.items():
... print '%-10s ==> %10d' % (name, phone)
...
Jack ==> 4098
Dcab ==> 7678
Sjoerd ==> 4127
Hầu hết các định dạng hoạt động như trong C và yêu cầu bạn truyền kiểu thích
hợp; nếu không, bạn sẽ nhận biệt lệ thay vì đổ nhân (core dump). Định dạng %s
dễ dãi hơn: nếu thông số tương ứng không phải là một đối tượng chuỗi, nó sẽ
được chuyển thành chuỗi qua hàm có sẵn str() . Việc dùng * để truyền vào độ
rộng và mức chính xác như là một thông số nguyên riêng cũng được hỗ trợ. Các
định dạng C %n và %p không được hỗ trợ.
Nếu bạn có một chuỗi định dạng rất dài và không muốn cắt ra, có thể bạn sẽ
muốn tham chiếu tới các biến sắp được định dạng qua tên, thay vì vị trí. Việc này
có thể được thực hiện theo dạng %(name)format, như ví dụ sau:
>>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}
3 of 7 08/31/2011 10:26 AM