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
   52   53   54   55   56   57   58   59   60   61   62