Phương thức isprintable[]
trả về đúng nếu tất cả các ký tự của chuỗi đã cho có thể in. Nó trả về sai ngay cả khi một ký tự không thể in được.
Bảng chữ cái viết hoa và chữ thường, giá trị số, ký hiệu và chuỗi trống đều đi dưới các ký tự có thể in.
Các nhân vật không thể in là các nhân vật không thể nhìn thấy và không chiếm một không gian trong in. Một số ký tự trong cơ sở dữ liệu ký tự Unicode là "Khác" hoặc "phân tách" là không thể in được. Tất cả các ký tự thoát như '\ n', '\ t', '\ r', '\ x16', '\ xlf', v.v.
Syntax:
str.isprintable[]
Parameters:
Không có
Giá trị trở lại:
Trả về true nếu một chuỗi có thể in được; nếu không thì sai.
Tất cả các chữ cái, ký hiệu, dấu chấm câu, các chữ số được coi là ký tự có thể in, vì vậy isprintable[]
trả về đúng, như được hiển thị bên dưới.
mystr = '12345'
print[mystr.isprintable[]] # Returns True
mystr = 'TutorialTeachers'
print[mystr.isprintable[]] # Returns True
mystr = '#1 Harbour Side'
print[mystr.isprintable[]] # Returns True
mystr = ''
print[mystr.isprintable[]] # Returns True
mystr = ' '
print[mystr.isprintable[]] # Returns True
Tất cả các ký tự thoát được coi là ký tự không thể in. Xem xét các ví dụ sau.
mystr = 'Hello World'
print[mystr.isprintable[]] # Returns True
mystr = 'Hello\tWorld'
print[mystr.isprintable[]] # Returns False
mystr = 'Hello World\n'
print[mystr.isprintable[]] # Returns False
mystr = '''Hello
World'''
print[mystr.isprintable[]] # Returns False
mystr = '\u2029' # Unicode char for paragraph separator
print[mystr.isprintable[]] # Returns False
True
False
False
False
False
Trong ví dụ trên, phương thức isprintable[]
trả về sai nếu một chuỗi chứa ký tự không thể in như '\ n', '\ t', v.v.
Bạn muốn kiểm tra xem bạn biết Python bao nhiêu?
Ngoài ra còn có một cách để in các ký tự không thể in theo nghĩa chúng thực hiện dưới dạng các lệnh trong chuỗi ngay cả khi không hiển thị [trong suốt] trong chuỗi và sự hiện diện của chúng có thể được quan sát bằng cách đo độ dài của chuỗi bằng cách sử dụng ____10 Như chỉ cần đặt con trỏ chuột ở đầu chuỗi và nhìn/đếm số lần bạn phải nhấn vào phím mũi tên để đi từ đầu đến cuối, vì một số ký tự kỳ lạ có thể có chiều dài 3 chẳng hạn, dường như bối rối. [Không chắc điều này đã được trình bày trong câu trả lời trước]
Trong ví dụ này, ảnh chụp màn hình bên dưới, tôi đã dán một chuỗi 135 bit có cấu trúc và định dạng nhất định [mà tôi phải tạo thủ công trước cho các vị trí bit nhất định và độ dài tổng thể của nó] để nó được hiểu là ASCII bởi chương trình cụ thể tôi ' m đang chạy và trong chuỗi in kết quả là các ký tự không thể in như 'ngắt dòng' theo nghĩa đen gây ngắt dòng [hiệu chỉnh: thức ăn mẫu, trang mới tôi muốn nói, không bị hỏng dòng] trong đầu ra in có thêm Toàn bộ dòng trống ở giữa kết quả in [xem bên dưới]:
Ví dụ về in các ký tự không thể in xuất hiện trong chuỗi in
Input a string:100100001010000000111000101000101000111011001110001000100001100010111010010101101011100001011000111011001000101001000010011101001000000
HPQGg]+\,vE!:@
>>> len['HPQGg]+\,vE!:@']
17
>>>
Trong đoạn trích mã trên, hãy thử sao chép-dán chuỗi
mystr = '12345'
print[mystr.isprintable[]] # Returns True
mystr = 'TutorialTeachers'
print[mystr.isprintable[]] # Returns True
mystr = '#1 Harbour Side'
print[mystr.isprintable[]] # Returns True
mystr = ''
print[mystr.isprintable[]] # Returns True
mystr = ' '
print[mystr.isprintable[]] # Returns True
1 trực tiếp từ trang web này và xem điều gì xảy ra khi bạn dán nó vào python nhàn rỗi.Gợi ý: Bạn phải nhấn vào mũi tên/con trỏ ba lần để vượt qua hai chữ cái từ
2 đến mystr = '12345'
print[mystr.isprintable[]] # Returns True
mystr = 'TutorialTeachers'
print[mystr.isprintable[]] # Returns True
mystr = '#1 Harbour Side'
print[mystr.isprintable[]] # Returns True
mystr = ''
print[mystr.isprintable[]] # Returns True
mystr = ' '
print[mystr.isprintable[]] # Returns True
3 mặc dù chúng xuất hiện cạnh nhau, vì thực sự có lệnh mystr = '12345'
print[mystr.isprintable[]] # Returns True
mystr = 'TutorialTeachers'
print[mystr.isprintable[]] # Returns True
mystr = '#1 Harbour Side'
print[mystr.isprintable[]] # Returns True
mystr = ''
print[mystr.isprintable[]] # Returns True
mystr = ' '
print[mystr.isprintable[]] # Returns True
4 ASCII ở giữa chúng. You have to tap the arrow/cursor three times to get across the two letters from mystr = '12345'
print[mystr.isprintable[]] # Returns True
mystr = 'TutorialTeachers'
print[mystr.isprintable[]] # Returns True
mystr = '#1 Harbour Side'
print[mystr.isprintable[]] # Returns True
mystr = ''
print[mystr.isprintable[]] # Returns True
mystr = ' '
print[mystr.isprintable[]] # Returns True
mystr = '12345'
print[mystr.isprintable[]] # Returns True
mystr = 'TutorialTeachers'
print[mystr.isprintable[]] # Returns True
mystr = '#1 Harbour Side'
print[mystr.isprintable[]] # Returns True
mystr = ''
print[mystr.isprintable[]] # Returns True
mystr = ' '
print[mystr.isprintable[]] # Returns True
2 to mystr = '12345'
print[mystr.isprintable[]] # Returns True
mystr = 'TutorialTeachers'
print[mystr.isprintable[]] # Returns True
mystr = '#1 Harbour Side'
print[mystr.isprintable[]] # Returns True
mystr = ''
print[mystr.isprintable[]] # Returns True
mystr = ' '
print[mystr.isprintable[]] # Returns True
3 even though they appear next to each other, as there is actually a mystr = '12345'
print[mystr.isprintable[]] # Returns True
mystr = 'TutorialTeachers'
print[mystr.isprintable[]] # Returns True
mystr = '#1 Harbour Side'
print[mystr.isprintable[]] # Returns True
mystr = ''
print[mystr.isprintable[]] # Returns True
mystr = ' '
print[mystr.isprintable[]] # Returns True
4 ascii command in between them. Tuy nhiên, mặc dù chúng ta có cùng giá trị khởi động khi giải mã nó dưới dạng mảng byte thành hex, nếu chúng ta chuyển đổi hex đó thành byte, chúng trông khác nhau [có lẽ thiếu mã hóa, không chắc chắn], nhưng bằng cách nào đó In các ký tự không thể in [tôi tình cờ gặp phải điều này trong khi cố gắng phát triển một phương pháp/thử nghiệm nén].
>>> bytes[b'HPQGg]+\,vE!:@'].hex[]
'48501c514767110c5d2b5c2c7645213a40'
>>> bytes.fromhex['48501c514767110c5d2b5c2c7645213a40']
b'HP\x1cQGg\x11\x0c]+\\,vE!:@'
>>> [0x48501c514767110c5d2b5c2c7645213a40 == 0b100100001010000000111000101000101000111011001110001000100001100010111010010101101011100001011000111011001000101001000010011101001000000]
True
>>>
Trong chuỗi 135 bit trên, 16 nhóm đầu tiên gồm 8 bit từ phía Big-Endian mã hóa mỗi ký tự [bao gồm cả không thể in], trong khi nhóm cuối cùng gồm 7 bit dẫn đến biểu tượng
mystr = '12345'
print[mystr.isprintable[]] # Returns True
mystr = 'TutorialTeachers'
print[mystr.isprintable[]] # Returns True
mystr = '#1 Harbour Side'
print[mystr.isprintable[]] # Returns True
mystr = ''
print[mystr.isprintable[]] # Returns True
mystr = ' '
print[mystr.isprintable[]] # Returns True
5, như được thấy dưới đây:Phân tích kỹ thuật của định dạng của chuỗi 135 bit trên
Và ở đây là văn bản là sự cố của chuỗi 135 bit:
10010000 = H [72]
10100000 = P [80]
00111000 = x1c [28 for File Separator] *
10100010 = Q [81]
10001110 = G[71]
11001110 = g [103]
00100010 = x11 [17 for Device Control 1] *
00011000 = x0c [12 for NP form feed, new page] *
10111010 = ] [93 for right bracket ‘]’
01010110 = + [43 for + sign]
10111000 = \ [92 for backslash]
01011000 = , [44 for comma, ‘,’]
11101100 = v [118]
10001010 = E [69]
01000010 = ! [33 for exclamation]
01110100 = : [58 for colon ‘:’]
1000000 = @ [64 for ‘@’ sign]
Vì vậy, khi kết thúc, câu trả lời cho câu hỏi phụ về việc hiển thị không thể in dưới dạng hex, trong mảng byte ở trên xuất hiện các chữ cái
mystr = '12345'
print[mystr.isprintable[]] # Returns True
mystr = 'TutorialTeachers'
print[mystr.isprintable[]] # Returns True
mystr = '#1 Harbour Side'
print[mystr.isprintable[]] # Returns True
mystr = ''
print[mystr.isprintable[]] # Returns True
mystr = ' '
print[mystr.isprintable[]] # Returns True
6 biểu thị lệnh phân tách tệp cũng được ghi nhận trong gợi ý. Mảng byte có thể được coi là một chuỗi nếu không bao gồm tiền tố mystr = '12345'
print[mystr.isprintable[]] # Returns True
mystr = 'TutorialTeachers'
print[mystr.isprintable[]] # Returns True
mystr = '#1 Harbour Side'
print[mystr.isprintable[]] # Returns True
mystr = ''
print[mystr.isprintable[]] # Returns True
mystr = ' '
print[mystr.isprintable[]] # Returns True
7 ở phía bên trái, và một lần nữa giá trị này hiển thị trong chuỗi in mặc dù nó là vô hình [mặc dù sự hiện diện của nó có thể được quan sát như được chứng minh ở trên với lệnh Gợi ý và mystr = '12345'
print[mystr.isprintable[]] # Returns True
mystr = 'TutorialTeachers'
print[mystr.isprintable[]] # Returns True
mystr = '#1 Harbour Side'
print[mystr.isprintable[]] # Returns True
mystr = ''
print[mystr.isprintable[]] # Returns True
mystr = ' '
print[mystr.isprintable[]] # Returns True
0].