%s trong python 2 là gì?

Có một số cách để trình bày đầu ra của một chương trình; . Chương này sẽ thảo luận về một số khả năng

7. 1. Định dạng đầu ra đẹp hơn¶

Cho đến giờ 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à sử dụng phương thức write[] của các đối tượng tệp; tệp đầu ra tiêu chuẩn có thể được tham chiếu là . thiết bị xuất chuẩn . Xem Tham khảo thư viện để biết thêm thông tin về điều này. ]

Thường thì bạn sẽ muốn kiểm soát nhiều hơn định dạng đầu ra của mình hơn là chỉ in các giá trị được phân tách bằng dấu cách. Có hai cách để định dạng đầu ra của bạn; . Các kiểu chuỗi có một số phương thức thực hiện các thao tác hữu ích để đệm các chuỗi thành một chiều rộng cột nhất định; . Cách thứ hai là sử dụng str. phương thức format[] .

Mô-đun chuỗi chứa lớp Mẫu cung cấp .

Tất nhiên vẫn còn một câu hỏi. làm thế nào để bạn chuyển đổi giá trị thành chuỗi? . chuyển nó tới các hàm repr[] hoặc str[] .

Hàm str[] có nghĩa là trả về các biểu diễn giá trị mà con người khá dễ đọc, trong khi repr[] is meant to generate representations which can be read by the interpreter [or will force a SyntaxError if there is not equivalent syntax]. For objects which don’t have a particular representation for human consumption, str[] sẽ trả về giá trị giống như . Nhiều giá trị, chẳng hạn như số hoặc cấu trúc như danh sách và từ điển, có cùng cách biểu diễn khi sử dụng một trong hai hàm. Đặc biệt, các chuỗi và số dấu phẩy động có hai cách biểu diễn riêng biệt. . Many values, such as numbers or structures like lists and dictionaries, have the same representation using either function. Strings and floating point numbers, in particular, have two distinct representations.

Vài ví dụ

>>> s = 'Hello, world.'
>>> str[s]
'Hello, world.'
>>> repr[s]
"'Hello, world.'"
>>> str[1.0/7.0]
'0.142857142857'
>>> repr[1.0/7.0]
'0.14285714285714285'
>>> x = 10 * 3.25
>>> y = 200 * 200
>>> s = 'The value of x is ' + repr[x] + ', and y is ' + repr[y] + '...'
>>> print s
The value of x is 32.5, and y is 40000...
>>> # The repr[] of a string adds string quotes and backslashes:
.. hello = 'hello, world\n'
>>> hellos = repr[hello]
>>> print hellos
'hello, world\n'
>>> # The argument to repr[] may be any Python object:
.. repr[[x, y, ['spam', 'eggs']]]
"[32.5, 40000, ['spam', 'eggs']]"

Dưới đây là hai cách viết bảng hình vuông và hình lập phương

>>> for x in range[1, 11]:
..     print repr[x].rjust[2], repr[x*x].rjust[3],
..     # Note trailing comma on previous line
..     print repr[x*x*x].rjust[4]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

>>> for x in range[1,11]:
..     print '{0:2d} {1:3d} {2:4d}'.format[x, x*x, x*x*x]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

[Lưu ý rằng trong ví dụ đầu tiên, một khoảng cách giữa mỗi cột đã được thêm vào bằng cách in hoạt động. nó luôn thêm khoảng trắng giữa các đối số của nó. ]

Ví dụ này minh họa str. phương thức rjust[] của các đối tượng chuỗi, giúp canh phải một chuỗi trong một trường có độ rộng nhất định bằng cách đệm chuỗi đó bằng khoảng trắng ở bên trái. Có các phương pháp tương tự str. ljust[]str. center[] . Các phương thức này không viết bất cứ thứ gì, chúng chỉ trả về một chuỗi mới. Nếu chuỗi đầu vào quá dài, họ sẽ không cắt bớt mà trả về không thay đổi; . [Nếu bạn thực sự muốn cắt bớt, bạn luôn có thể thêm thao tác cắt lát, như trong x. lchỉ[n][. n] . ]

Có một phương pháp khác, str. zfill[] , đệm chuỗi số ở bên trái bằng số 0. Nó hiểu về dấu cộng và dấu trừ.

>>> '12'.zfill[5]
'00012'
>>> '-3.14'.zfill[7]
'-003.14'
>>> '3.14159265359'.zfill[5]
'3.14159265359'

Cách sử dụng cơ bản của str. format[] phương thức trông như thế này.

>>> print 'We are the {} who say "{}!"'.format['knights', 'Ni']
We are the knights who say "Ni!"

Các dấu ngoặc và ký tự bên trong chúng [được gọi là các trường định dạng] được thay thế bằng các đối tượng được chuyển vào str. phương thức format[] . Một số trong ngoặc đề cập đến vị trí của đối tượng được truyền vào str. phương thức format[] .

>>> print '{0} and {1}'.format['spam', 'eggs']
spam and eggs
>>> print '{1} and {0}'.format['spam', 'eggs']
eggs and spam

Nếu đối số từ khóa được sử dụng trong str. format[] , các giá trị của chúng được gọi bằng cách sử dụng tên của đối số.

>>> print 'This {food} is {adjective}.'.format[
..       food='spam', adjective='absolutely horrible']
This spam is absolutely horrible.

Đối số vị trí và từ khóa có thể được kết hợp tùy ý

>>> print 'The story of {0}, {1}, and {other}.'.format['Bill', 'Manfred',
..                                                    other='Georg']
The story of Bill, Manfred, and Georg.

'. s' [áp dụng str[] ] và '. r' [áp dụng repr[] ] có thể được sử dụng để chuyển đổi giá trị trước khi nó được định dạng.

>>> import math
>>> print 'The value of PI is approximately {}.'.format[math.pi]
The value of PI is approximately 3.14159265359.
>>> print 'The value of PI is approximately {!r}.'.format[math.pi]
The value of PI is approximately 3.141592653589793.

Tùy chọn '. ' và trình xác định định dạng có thể theo tên trường. Điều này cho phép kiểm soát tốt hơn cách định dạng giá trị. Ví dụ sau đây làm tròn số Pi đến ba vị trí sau dấu thập phân.

________số 8

Truyền một số nguyên sau '. ' sẽ khiến trường đó có số lượng ký tự tối thiểu. Điều này rất hữu ích để làm cho các bảng đẹp.

>>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}
>>> for name, phone in table.items[]:
..     print '{0:10} ==> {1:10d}'.format[name, phone]
...
Jack       ==>       4098
Dcab       ==>       7678
Sjoerd     ==>       4127

Nếu bạn có một chuỗi định dạng thực sự dài mà bạn không muốn chia nhỏ, sẽ rất tuyệt nếu bạn có thể tham chiếu các biến được định dạng theo tên thay vì theo vị trí. Điều này có thể được thực hiện bằng cách chuyển chính tả và sử dụng dấu ngoặc vuông '[]' để truy cập các khóa

>>> for x in range[1, 11]:
..     print repr[x].rjust[2], repr[x*x].rjust[3],
..     # Note trailing comma on previous line
..     print repr[x*x*x].rjust[4]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

>>> for x in range[1,11]:
..     print '{0:2d} {1:3d} {2:4d}'.format[x, x*x, x*x*x]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
0

Điều này cũng có thể được thực hiện bằng cách chuyển bảng dưới dạng đối số từ khóa với ký hiệu '**'

>>> for x in range[1, 11]:
..     print repr[x].rjust[2], repr[x*x].rjust[3],
..     # Note trailing comma on previous line
..     print repr[x*x*x].rjust[4]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

>>> for x in range[1,11]:
..     print '{0:2d} {1:3d} {2:4d}'.format[x, x*x, x*x*x]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
1

Điều này đặc biệt hữu ích khi kết hợp với hàm tích hợp sẵn vars[] , hàm này trả về một từ điển chứa tất cả các biến cục bộ.

Để biết tổng quan đầy đủ về định dạng chuỗi với str. format[] , xem Cú pháp chuỗi định dạng.

7. 1. 1. Định dạng chuỗi cũ¶

Toán tử % cũng có thể được sử dụng để định dạng chuỗi. Nó diễn giải đối số bên trái giống như chuỗi định dạng kiểu sprintf[] được áp dụng cho đối số bên phải và trả về chuỗi kết quả từ thao tác định dạng này. Ví dụ.

>>> for x in range[1, 11]:
..     print repr[x].rjust[2], repr[x*x].rjust[3],
..     # Note trailing comma on previous line
..     print repr[x*x*x].rjust[4]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

>>> for x in range[1,11]:
..     print '{0:2d} {1:3d} {2:4d}'.format[x, x*x, x*x*x]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
2

str. format[] còn khá mới, nhiều mã Python vẫn sử dụng toán tử % . Tuy nhiên, vì kiểu định dạng cũ này cuối cùng sẽ bị xóa khỏi ngôn ngữ, nên str. format[] nên thường được sử dụng.

Bạn có thể tìm thêm thông tin trong phần Thao tác định dạng chuỗi

7. 2. Đọc và ghi tệp¶

open[] trả về một đối tượng tệp và được sử dụng phổ biến nhất với hai đối số. mở[tên tệp, chế độ] .

>>> for x in range[1, 11]:
..     print repr[x].rjust[2], repr[x*x].rjust[3],
..     # Note trailing comma on previous line
..     print repr[x*x*x].rjust[4]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

>>> for x in range[1,11]:
..     print '{0:2d} {1:3d} {2:4d}'.format[x, x*x, x*x*x]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
3

Đối số đầu tiên là một chuỗi chứa tên tệp. Đối số thứ hai là một chuỗi khác chứa một vài ký tự mô tả cách sử dụng tệp. chế độ có thể là 'r' khi tệp sẽ chỉ được đọc, 'w' for only writing [an existing file with the same name will be erased], and 'a' opens the file for appending; any data written to the file is automatically added to the end. 'r+' mở tệp để đọc và ghi. Đối số chế độ là tùy chọn; . 'r' will be assumed if it’s omitted.

Trên Windows, 'b' được thêm vào chế độ sẽ mở tệp ở chế độ nhị phân, do đó, cũng có các chế độ như 'rb', 'wb', and 'r+b'. Python on Windows makes a distinction between text and binary files; the end-of-line characters in text files are automatically altered slightly when data is read or written. This behind-the-scenes modification to file data is fine for ASCII text files, but it’ll corrupt binary data like that in JPEG hoặc EXE files. Be very careful to use binary mode when reading and writing such files. On Unix, it doesn’t hurt to append a 'b' vào chế độ, vì vậy bạn có thể sử dụng nó độc lập với nền tảng cho tất cả các tệp nhị phân.

7. 2. 1. Các phương thức của đối tượng tệp¶

Các ví dụ còn lại trong phần này sẽ giả định rằng một đối tượng tệp có tên f đã được tạo.

Để đọc nội dung của tệp, hãy gọi f. read[size] , đọc một số lượng dữ liệu và trả về dưới dạng chuỗi. kích thước là một đối số số tùy chọn. Khi kích thước bị bỏ qua hoặc âm, toàn bộ nội dung của tệp sẽ được đọc và trả về; . Mặt khác, ở hầu hết các byte kích thước được đọc và trả về. Nếu đã đến cuối tệp, f. read[] sẽ trả về một chuỗi rỗng [ "" ].

>>> for x in range[1, 11]:
..     print repr[x].rjust[2], repr[x*x].rjust[3],
..     # Note trailing comma on previous line
..     print repr[x*x*x].rjust[4]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

>>> for x in range[1,11]:
..     print '{0:2d} {1:3d} {2:4d}'.format[x, x*x, x*x*x]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
4

f. readline[] đọc một dòng từ tệp; . Điều này làm cho giá trị trả về trở nên rõ ràng; . readline[] \n] is left at the end of the string, and is only omitted on the last line of the file if the file doesn’t end in a newline. This makes the return value unambiguous; if f.readline[] trả về một chuỗi trống, đã đến cuối tệp, trong khi một dòng trống được biểu thị bằng '\n', a string containing only a single newline.

>>> for x in range[1, 11]:
..     print repr[x].rjust[2], repr[x*x].rjust[3],
..     # Note trailing comma on previous line
..     print repr[x*x*x].rjust[4]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

>>> for x in range[1,11]:
..     print '{0:2d} {1:3d} {2:4d}'.format[x, x*x, x*x*x]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
5

f. readlines[] trả về một danh sách chứa tất cả các dòng dữ liệu trong tệp. Nếu được cung cấp một tham số tùy chọn sizehint, nó sẽ đọc bao nhiêu byte đó từ tệp và đủ nhiều hơn nữa để hoàn thành một dòng và trả về các dòng từ đó. Điều này thường được sử dụng để cho phép đọc một tệp lớn theo từng dòng một cách hiệu quả mà không phải tải toàn bộ tệp vào bộ nhớ. Chỉ những dòng hoàn chỉnh mới được trả về.

>>> for x in range[1, 11]:
..     print repr[x].rjust[2], repr[x*x].rjust[3],
..     # Note trailing comma on previous line
..     print repr[x*x*x].rjust[4]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

>>> for x in range[1,11]:
..     print '{0:2d} {1:3d} {2:4d}'.format[x, x*x, x*x*x]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
6

Một cách tiếp cận khác để đọc các dòng là lặp qua đối tượng tệp. Đây là bộ nhớ hiệu quả, nhanh chóng và dẫn đến mã đơn giản hơn

>>> for x in range[1, 11]:
..     print repr[x].rjust[2], repr[x*x].rjust[3],
..     # Note trailing comma on previous line
..     print repr[x*x*x].rjust[4]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

>>> for x in range[1,11]:
..     print '{0:2d} {1:3d} {2:4d}'.format[x, x*x, x*x*x]
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
7

Cách tiếp cận thay thế đơn giản hơn nhưng không cung cấp khả năng kiểm soát chi tiết. Vì hai cách tiếp cận quản lý bộ đệm dòng khác nhau nên không nên trộn lẫn chúng

%s có nghĩa là gì trong Python?

%s cụ thể là được sử dụng để thực hiện nối các chuỗi lại với nhau . Nó cho phép chúng ta định dạng một giá trị bên trong một chuỗi. Nó được sử dụng để kết hợp một chuỗi khác trong một chuỗi. Nó tự động cung cấp chuyển đổi kiểu từ giá trị thành chuỗi.

%s và %R trong Python là gì?

Không có gì. Cả hai đều là ngôn ngữ lập trình hoàn chỉnh Turing, vì vậy bạn có thể thực hiện bất kỳ thuật toán nào trong cả hai. Điểm khác biệt duy nhất [và chính] là R là ngôn ngữ lập trình dành riêng cho miền và Python là ngôn ngữ đa mục đích .

%d %s %F trong Python là gì?

Trả lời. Trong Python, các trình định dạng chuỗi về cơ bản là các trình giữ chỗ cho phép chúng ta chuyển các giá trị khác nhau vào một số chuỗi được định dạng. Trình định dạng %d được sử dụng để nhập giá trị thập phân hoặc số nguyên . Nếu bạn cung cấp một giá trị float, nó sẽ chuyển đổi nó thành một số nguyên, bằng cách cắt bớt các giá trị sau dấu thập phân.

%d và %i trong Python là gì?

Đây là trăn. org phải nói về %i. Số thập phân có dấu. Và %d. Số thập phân có dấu. %d là số thập phân và %i là số nguyên . nhưng cả hai đều giống nhau, bạn có thể sử dụng cả hai.

Chủ Đề