Chức năng vá python

Nếu bạn giống hầu hết người dùng Python, bao gồm cả tôi, thì bạn có thể bắt đầu hành trình Python của mình bằng cách tìm hiểu về 

'\n'  # Blank line
''    # Empty line
45. Nó đã giúp bạn viết 
'\n'  # Blank line
''    # Empty line
46một lớp lót của riêng bạn. Bạn có thể sử dụng nó để hiển thị các định dạng thông báo trên màn hình và có thể tìm thấy một số lỗi. Nhưng nếu bạn cho rằng đó là tất cả những gì cần biết về 
'\n'  # Blank line
''    # Empty line
45chức năng của Python , thì bạn đang bỏ lỡ rất nhiều thứ

Hãy tiếp tục đọc để tận dụng tối đa chức năng nhỏ có vẻ chán nản và không được đánh giá cao này. Hướng dẫn này sẽ giúp bạn bắt kịp tốc độ sử dụng Python 

'\n'  # Blank line
''    # Empty line
45một cách hiệu quả. Tuy nhiên, hãy chuẩn bị cho một cuộc lặn sâu khi bạn đi qua các phần. Bạn có thể ngạc nhiên về số tiền 
'\n'  # Blank line
''    # Empty line
45 phải cung cấp

Đến cuối hướng dẫn này, bạn sẽ biết cách

  • Tránh những lỗi thường gặp với Python 
    '\n'  # Blank line
    ''    # Empty line
    45
  • Xử lý các dòng mới, ký tự mã hóa và bộ đệm
  • Viết văn bản vào tệp
  • Mô phỏng 
    '\n'  # Blank line
    ''    # Empty line
    45trong các bài kiểm tra đơn vị
  • Xây dựng giao diện người dùng nâng cao trong thiết bị đầu cuối

Nếu bạn là người mới bắt đầu học Python, thì bạn sẽ được hưởng lợi nhiều nhất khi đọc phần đầu tiên của hướng dẫn này, phần này minh họa các yếu tố cần thiết của công việc bằng Python

Lưu ý. print() là một phần bổ sung chính cho Python 3, trong đó nó thay thế câu lệnh print có sẵn trong Python 2

In the Nutshell

Hãy bắt đầu bằng cách xem xét một vài ví dụ thực tế về bằng Python. Đến cuối phần này, bạn sẽ biết mọi cách gọi có thể 

'\n'  # Blank line
''    # Empty line
45. Hoặc, trong biệt ngữ của lập trình viên, bạn nói rằng bạn sẽ quen với cú pháp hàm

Lời gọi '\n' # Blank line '' # Empty line45

Ví dụ đơn giản nhất về việc sử dụng Python 

'\n'  # Blank line
''    # Empty line
45 như sau

'\n'  # Blank line
''    # Empty line
0

Bạn không truyền bất kỳ đối số nào, nhưng bạn vẫn cần đặt cặp chiết vòng () ở cuối, điều này để biết Python thực sự thực thi hàm thay vì chỉ tham chiếu đến nó bằng tên

Điều này sẽ tạo ra một dòng ký tự vô hình mới, do đó sẽ tạo ra một dòng trống xuất hiện trên màn hình của bạn. Bạn có thể gọi 

'\n'  # Blank line
''    # Empty line
45 nhiều lần như vậy để thêm không gian theo chiều dọc. Nó giống như thể bạn đang nhấn Enter trên bàn phím của mình trong một trình xử lý văn bản

Như bạn vừa thấy, cuộc gọi 

'\n'  # Blank line
''    # Empty line
45 mà không có đối số dẫn đến một dòng trống, là một dòng chỉ bao gồm các ký tự dòng mới. Đừng nhầm lẫn điều này với một dòng trống, không chứa bất kỳ ký tự nào, thậm chí chí không phải dòng mới

Bạn có thể sử dụng ký tự chuỗi của Python để cấu hình dung thứ sau

'\n'  # Blank line
''    # Empty line

Điều đầu tiên là một ký tự dài, điều thứ hai không có nội dung

Lưu ý. Để xóa các ký tự dòng mới khỏi một chuỗi trong Python, hãy sử dụng phương thức rstrip() như sau

'\n'  # Blank line
''    # Empty line
4

Thao tác này loại bỏ bất kỳ khoảng trắng nào ở cuối từ bên phải của chuỗi ký tự

Trong một tình huống rắc rối phổ biến hơn, bạn muốn chuyển một số thông báo đến người dùng cuối. Có một số cách để đạt được điều này

Đầu tiên, bạn có thể truyền trực tiếp một chuỗi ký tự đến 

'\n'  # Blank line
''    # Empty line
45

'\n'  # Blank line
''    # Empty line
6

Thao tác này sẽ ở dạng nguyên văn thông báo ra màn hình

Thứ hai, bạn không thể trích xuất thông báo đó thành biến riêng của nó với một cái tên có ý nghĩa để nâng cao khả năng đọc và kết thúc việc sử dụng lại mã

'\n'  # Blank line
''    # Empty line
7

Cuối cùng, bạn có thể chuyển một biểu thức, chẳng hạn như chuỗi cuối, để được đánh giá cao trước khi có kết quả

'\n'  # Blank line
''    # Empty line
8

zzz Đang thực tế, có nhiều cách để định dạng thư trong Python. Tôi thực sự khuyến nghị bạn xem qua f-string , được giới thiệu trong Python 3. 6, vì chúng tôi cung cấp cú pháp thu gọn nhất trong tất cả các số

>>>

'\n'  # Blank line
''    # Empty line
9

Hơn nữa, f-string sẽ giúp bạn không thắc mắc phải một biến phổ biến nào đó, đó là quên nhập các kiểu kết nối tuyến tính. Python là một ngôn ngữ được đánh máy mạnh, có nghĩa là nó sẽ không cho phép bạn làm điều này

>>>

'\n'  # Blank line
''    # Empty line
0

Điều đó là sai vì thêm số vào chuỗi không có ý nghĩa. Trước tiên, bạn cần chuyển đổi chuỗi số thành một cách rõ ràng, để kết hợp chúng với nhau

>>>

'\n'  # Blank line
''    # Empty line
1

Trừ khi bạn tự xử lý các lỗi như vậy, trình thông dịch Python sẽ cho bạn biết về sự cố bằng cách hiển thị một dấu vết

Lưu ý.

'\n'  # Blank line
''    # Empty line
58 là một hàm tổng hợp toàn cục có chức năng chuyển đổi một đối tượng thành chuỗi biểu diễn của nó

Bạn có thể gọi nó là trực tiếp trên bất kỳ đối tượng nào, ví dụ. một số

>>>

'\n'  # Blank line
''    # Empty line
3

Các kiểu dữ liệu xây dựng có biểu tượng chuỗi đã được xác định trước bên ngoài hộp, nhưng ở phần sau của bài viết này, bạn sẽ tìm hiểu cách cung cấp một biểu chuỗi cho các lớp tùy chỉnh của mình

Như với bất kỳ hàm nào, bạn không quan trọng việc truyền một ký tự, một biến hay một biểu thức. Tuy nhiên, không giống như nhiều chức năng khác, 

'\n'  # Blank line
''    # Empty line
45 sẽ chấp nhận bất kỳ thứ gì bất kể loại của nó

Từ trước đến nay, bạn chỉ nhìn vào chuỗi, còn các kiểu dữ liệu khác thì sao?

>>>

'\n'  # Blank line
''    # Empty line
0

'\n'  # Blank line
''    # Empty line
60 Mặc dù vậy, hãy để ý đến hàng số. Mặc dù được sử dụng để chỉ loại bỏ mặt của một giá trị, nhưng nó sẽ hiển thị dưới dạng 
'\n'  # Blank line
''    # Empty line
61một chuỗi rỗng

>>>

'\n'  # Blank line
''    # Empty line
1

Làm thế nào không 

'\n'  # Blank line
''    # Empty line
45 biết làm thế nào để làm việc với tất cả các loại khác nhau? . Nó ngừng gọi 
'\n'  # Blank line
''    # Empty line
58đằng sau hậu trường để nhập bất kỳ đối tượng nào vào một chuỗi. Sau đó, nó xử lý các chuỗi theo một cách hệ thống nhất

Phần sau của hướng dẫn này, bạn sẽ học cách sử dụng cơ chế này để tùy chỉnh các kiểu dữ liệu, chẳng hạn như các lớp của bạn

Được rồi, bây giờ bạn có thể gọi 

'\n'  # Blank line
''    # Empty line
45với một đối số duy nhất hoặc không có bất kỳ đối số nào. Bạn biết cách trong các tin nhắn đã được cố định hoặc định dạng trên màn hình. Phần phụ tiếp theo sẽ mở rộng về định dạng thư một chút

Tách nhiều đối số

Bạn đã thấy 

'\n'  # Blank line
''    # Empty line
45được gọi mà không có bất kỳ đối số nào để tạo ra một dòng trống và sau đó được gọi với một đối số duy nhất để hiển thị một thông báo cố định hoặc một thông báo được định dạng

Tuy nhiên, nó chỉ ra rằng hàm này có thể chấp nhận bất kỳ số lượng đối số vị trí nào, bao gồm không, một hoặc nhiều đối số. Điều đó rất hữu ích trong trường hợp định dạng thư phổ biến, khi bạn muốn kết hợp một vài phần tử lại với nhau

Hãy xem ví dụ này

>>>

'\n'  # Blank line
''    # Empty line
2

'\n'  # Blank line
''    # Empty line
45nối tất cả bốn đối số được truyền cho nó và nó thêm một khoảng trống giữa chúng để bạn không kết thúc với một thông báo bị bóp méo như thế 
'\n'  # Blank line
''    # Empty line
67

Lưu ý rằng nó cũng đã quan tâm đến việc ép kiểu thích hợp bằng cách gọi điện 

'\n'  # Blank line
''    # Empty line
58vào mỗi đối số trước khi kết hợp chúng lại với nhau. Nếu bạn nhớ lại từ tiểu mục trước, một đơn giản ghép được phép có thể dễ dàng dẫn đến lỗi do các kiểu không tương thích

>>>

'\n'  # Blank line
''    # Empty line
3

Ngoài việc chấp nhận một số lượng đối số vị trí khác nhau, 

'\n'  # Blank line
''    # Empty line
45 xác định bốn đối số có tên hoặc từ khóa, là tùy chọn vì tất cả chúng đều có giá trị mặc định. Bạn có thể xem tài liệu ngắn gọn của họ bằng cách gọi số 
'\n'  # Blank line
''    # Empty line
70 từ trình thông dịch tương tác

Bây giờ hãy tập trung vào

'\n'  # Blank line
''    # Empty line
71. Nó là viết tắt của dấu phân cách và được gán một dấu cách (
'\n'  # Blank line
''    # Empty line
72) theo mặc định. Nó xác định giá trị để nối các phần tử với

Nó phải là một chuỗi hoặc

'\n'  # Blank line
''    # Empty line
60, nhưng cái sau có tác dụng tương tự như khoảng cách mặc định

>>>

'\n'  # Blank line
''    # Empty line
4

Nếu bạn muốn loại bỏ hoàn toàn dấu phân cách, thay vào đó, bạn phải chuyển một chuỗi trống (

'\n'  # Blank line
''    # Empty line
74)

>>>

'\n'  # Blank line
''    # Empty line
5

Bạn có thể muốn 

'\n'  # Blank line
''    # Empty line
45nối các đối số của nó thành các dòng riêng biệt. Trong trường hợp đó, chỉ cần chuyển ký tự dòng mới thoát được mô tả trước đó

>>>

'\n'  # Blank line
''    # Empty line
6

Một ví dụ hữu ích hơn về 

'\n'  # Blank line
''    # Empty line
71tham số sẽ nằm trong một cái gì đó giống như đường dẫn tệp

>>>

'\n'  # Blank line
''    # Empty line
7

Hãy nhớ rằng dấu phân cách nằm giữa các phần tử, không xung đột xung quanh chúng, vì vậy bạn cần tính toán điều đó theo cách này hay cách khác

>>>

'\n'  # Blank line
''    # Empty line
8

Cụ thể, bạn có thể chèn một ký tự gạch chéo ( 

'\n'  # Blank line
''    # Empty line
77) vào đối số vị trí đầu tiên hoặc sử dụng chuỗi rỗng làm đối số đầu tiên để thực hiện dấu gạch chéo đầu tiên

Lưu ý. Hãy cẩn thận về việc kết nối các phần tử của danh sách hoặc bộ dữ liệu

Thực hiện theo cách thủ công sẽ dẫn đến kết quả nổi tiếng 

'\n'  # Blank line
''    # Empty line
78 nếu ít nhất một trong các phần tử không phải là chuỗi

>>>

'\n'  # Blank line
''    # Empty line
9

Sẽ an toàn hơn nếu chỉ giải nén chuỗi bằng ngôi sao toán tử ( 

'\n'  # Blank line
''    # Empty line
79) và để 
'\n'  # Blank line
''    # Empty line
45xử lý kiểu truyền thông

>>>

'\n'  # Blank line
''    # Empty line
40

Trình giải nén cũng giống như tên gọi 

'\n'  # Blank line
''    # Empty line
45với các phần tử riêng lẻ của danh sách

Một ví dụ thú vị khác có thể là xuất dữ liệu sang định dạng giá trị được phân tách bằng dấu phẩy (CSV)

>>>

'\n'  # Blank line
''    # Empty line
41

Điều này sẽ không xử lý các trường hợp gần như hạn chế như thoát khỏi dấu hôn một cách chính xác, nhưng đối với các trường hợp sử dụng đơn giản, nó sẽ làm được. Dòng trên sẽ hiển thị trong cửa sổ đầu cuối của bạn. Để lưu nó vào một tệp, bạn phải chuyển hướng đầu ra. Ở phần sau của phần này, bạn sẽ thấy cách sử dụng 

'\n'  # Blank line
''    # Empty line
45 để ghi văn bản vào tệp trực tiếp từ Python

Cuối cùng, 

'\n'  # Blank line
''    # Empty line
71tham số không bị giới hạn chỉ trong một ký tự. Bạn có thể kết nối các phần tử với các chuỗi có độ dài bất kỳ

>>>

'\n'  # Blank line
''    # Empty line
42

Trong các phần phụ sắp tới, bạn sẽ khám phá các đối số từ khóa còn lại của hàm 

'\n'  # Blank line
''    # Empty line
45

Ngăn Ngắt Dòng

Đôi khi, bạn không muốn kết thúc tin nhắn của mình bằng một dòng mới ở cuối để các cuộc gọi tiếp theo đến

'\n'  # Blank line
''    # Empty line
45 sẽ tiếp tục trên cùng một dòng. Các ví dụ cổ điển bao gồm cập nhật tiến trình của một hoạt động dài hạn hoặc nhắc người dùng nhập liệu. Trong trường hợp sau, bạn muốn người dùng nhập câu trả lời trên cùng một dòng

'\n'  # Blank line
''    # Empty line
43

Trình thiết lập nhiều ngôn ngữ hiển thị các chức năng tương tự như 

'\n'  # Blank line
''    # Empty line
45thông qua các thư viện tiêu chuẩn của họ, nhưng họ cho phép bạn quyết định có thêm một dòng mới hoặc không. Ví dụ. trong Java và C#, bạn có hai hàm riêng biệt, trong khi các ngôn ngữ khác yêu cầu bạn phải kết nối rõ ràng 
'\n'  # Blank line
''    # Empty line
87vào cuối một chuỗi ký tự

Dưới đây là một số ví dụ về cú pháp trong các ngôn ngữ như vậy

Ngôn ngữThí dụPerl

'\n'  # Blank line
''    # Empty line
88C
'\n'  # Blank line
''    # Empty line
89C++
'\n'  # Blank line
''    # Empty line
90

Ngược lại, 

'\n'  # Blank line
''    # Empty line
45hàm của Python luôn thêm 
'\n'  # Blank line
''    # Empty line
87mà không cần hỏi, vì đó là những gì bạn muốn trong hầu hết các trường hợp. Để vô hiệu hóa nó, bạn có thể tận dụng lợi thế của một đối số từ khóa khác, đối số 
'\n'  # Blank line
''    # Empty line
93 này cho biết phải kết thúc dòng bằng gì

Về nghĩa, 

'\n'  # Blank line
''    # Empty line
93tham số gần giống như tham số 
'\n'  # Blank line
''    # Empty line
71mà bạn đã thấy trước đó

  • Nó phải là một chuỗi hoặc 
    '\n'  # Blank line
    ''    # Empty line
    60
  • It could long option
  • Nó có giá trị mặc định là 
    '\n'  # Blank line
    ''    # Empty line
    97
  • Nếu bằng 
    '\n'  # Blank line
    ''    # Empty line
    60, nó sẽ có cùng tác dụng với giá trị mặc định
  • Nếu bằng một chuỗi rỗng ( 
    '\n'  # Blank line
    ''    # Empty line
    74), nó sẽ ngăn dòng mới

Bây giờ bạn đã hiểu điều gì đang xảy ra khi bạn đang gọi 

'\n'  # Blank line
''    # Empty line
45mà không có đối số. Vì bạn không cung cấp bất kỳ đối số vị trí nào cho hàm nên không có gì được kết nối và do đó dấu phân tách hoàn toàn không được sử dụng. Tuy nhiên, giá trị mặc định của 
'\n'  # Blank line
''    # Empty line
93 vẫn được áp dụng và một dòng trống sẽ hiển thị

Lưu ý. Bạn có thể tự hỏi tại sao 

'\n'  # Blank line
''    # Empty line
93tham số có giá trị mặc định cố định thay vì bất cứ điều gì có ý nghĩa trên hệ thống điều hành của bạn

Chà, bạn không cần phải lắng nghe về biểu tượng dòng mới trên các hệ điều hành khác nhau khi vào, vì

'\n'  # Blank line
''    # Empty line
45 sẽ tự động xử lý chuyển đổi. Chỉ cần nhớ luôn sử dụng 
'\n'  # Blank line
''    # Empty line
87trình tự thoát trong chuỗi ký tự

Hiện tại là cách di chuyển tốt nhất cho một ký tự dòng mới trong Python

>>>

'\n'  # Blank line
''    # Empty line
44

Ví dụ. Nếu bạn cố gắng chạy một ký tự dòng mới dành riêng cho Windows trên máy Linux, bạn sẽ nhận được kết quả đầu ra bị hỏng

>>>

'\n'  # Blank line
''    # Empty line
45

Ở bên lật, khi bạn mở tệp để đọc với 

'\n'  # Blank line
''    # Empty line
405, bạn không cần phải quan tâm đến đại diện xuống dòng trong hai. Hàm sẽ chuyển bất kỳ dòng mới nào của hệ thống cụ thể mà nó gặp phải thành một phổ biến
'\n'  # Blank line
''    # Empty line
97. Đồng thời, bạn có quyền kiểm soát cách các dòng mới nên được xử lý như thế nào cả về đầu vào và đầu ra nếu bạn thực sự cần điều đó

Để tắt dòng mới, bạn phải chỉ định một chuỗi thông tin trống qua 

'\n'  # Blank line
''    # Empty line
93đối số từ khóa

'\n'  # Blank line
''    # Empty line
46

Mặc dù đây là hai 

'\n'  # Blank line
''    # Empty line
45 cuộc gọi riêng biệt , có thể thực hiện cách nhau một khoảng thời gian dài, nhưng cuối cùng bạn sẽ chỉ thấy một dòng. Đầu tiên, nó sẽ trông như thế này

'\n'  # Blank line
''    # Empty line
47

Tuy nhiên, sau cuộc gọi thứ hai đến ______045, dòng tương tự sẽ xuất hiện trên màn hình như

'\n'  # Blank line
''    # Empty line
48

Tương tự như vậy 

'\n'  # Blank line
''    # Empty line
71, bạn có thể sử dụng 
'\n'  # Blank line
''    # Empty line
93 để nối các phần riêng lẻ thành một khối văn bản lớn bằng dấu phân tách tùy chỉnh. Tuy nhiên, thay vì nối nhiều đối số, nó sẽ nối văn bản từ mỗi lệnh gọi hàm vào cùng một dòng

'\n'  # Blank line
''    # Empty line
49

Ba hướng dẫn này sẽ xuất ra một dòng văn bản

'\n'  # Blank line
''    # Empty line
60

You can could connect two argument from key

'\n'  # Blank line
''    # Empty line
61

Bạn không chỉ nhận được một dòng văn bản mà tất cả các mục đều được phân tách bằng dấu phẩy

'\n'  # Blank line
''    # Empty line
62

Không có gì ngăn bạn sử dụng ký tự dòng mới với một số phần đệm bổ sung xung quanh nó

'\n'  # Blank line
''    # Empty line
63

Nó sẽ ra đoạn văn bản sau

'\n'  # Blank line
''    # Empty line
64

Nếu bạn có thể thấy, 

'\n'  # Blank line
''    # Empty line
93đối số từ khóa sẽ chấp nhận các chuỗi tùy chọn

Lưu ý. Việc lặp qua các dòng trong tệp văn bản giữ nguyên các ký tự dòng mới của riêng chúng, điều này kết hợp với 

'\n'  # Blank line
''    # Empty line
45hành vi mặc định của hàm sẽ dẫn đến một dòng ký tự mới dư thừa

>>>

'\n'  # Blank line
''    # Empty line
65

Có hai dòng mới sau mỗi dòng văn bản. Bạn muốn loại bỏ một số trong chúng, như được hiển thị trước đó trong bài viết này, trước khi trong dòng

'\n'  # Blank line
''    # Empty line
66

Ngoài ra, bạn có thể giữ dòng mới trong nội dung nhưng loại bỏ dòng được thêm vào bằng cách

'\n'  # Blank line
''    # Empty line
45tự động. Bạn sẽ sử dụng 
'\n'  # Blank line
''    # Empty line
93đối số từ khóa để làm điều đó

>>>

'\n'  # Blank line
''    # Empty line
67

Bằng cách kết thúc một dòng bằng một chuỗi trống, bạn vô hiệu hóa một cách hiệu quả trong các dòng mới

Bạn đang làm quen nhiều hơn với công việc bằng Python, nhưng vẫn còn rất nhiều thông tin hữu ích ở phía trước. Trong phần phụ sắp tới, bạn sẽ học cách chặn và chuyển hướng

'\n'  # Blank line
''    # Empty line
45 đầu ra của hàm

In ra file

Tin hay không thì tùy chọn, 

'\n'  # Blank line
''    # Empty line
45bạn không biết cách biến tin nhắn thành văn bản trên màn hình của bạn và nói thẳng ra là không cần thiết. Đó là công việc dành cho các lớp mã cấp thấp hơn, những lớp này hiểu các byte và biết cách chúng xung đột xung quanh

'\n'  # Blank line
''    # Empty line
45là một sự thay đổi đối tượng hóa học trên các lớp này, cung cấp một giao diện thuận lợi chỉ để ủy thác công việc trong thực tế cho một luồng hoặc đối tượng giống tệp. Luồng có thể là bất kỳ tệp nào trên đĩa của bạn, ổ cắm mạng hoặc có thể là bộ đệm trong bộ nhớ

Ngoài ra, có ba luồng tiêu chuẩn được cung cấp bởi hệ thống điều hành

  1. '\n'  # Blank line
    ''    # Empty line
    419. đầu vào tiêu chuẩn
  2. '\n'  # Blank line
    ''    # Empty line
    420. standard header
  3. '\n'  # Blank line
    ''    # Empty line
    421. standard error

Luồng chuẩn Hiển thị

Trong Python, bạn có thể truy cập tất cả các luồng tiêu chuẩn thông qua 

'\n'  # Blank line
''    # Empty line
422mô-đun tích hợp

>>>

'\n'  # Blank line
''    # Empty line
68

Như bạn có thể thấy, các giá trị được xác định trước đây giống với các đối tượng giống tệp với 

'\n'  # Blank line
''    # Empty line
423và 
'\n'  # Blank line
''    # Empty line
424 thuộc tính cũng như 
'\n'  # Blank line
''    # Empty line
425và 
'\n'  # Blank line
''    # Empty line
426 theo công thức trong nhiều giá trị khác nhau

Theo mặc định, 

'\n'  # Blank line
''    # Empty line
45được ràng buộc 
'\n'  # Blank line
''    # Empty line
428thông qua 
'\n'  # Blank line
''    # Empty line
429đối số của nó , nhưng bạn có thể thay đổi điều đó. Sử dụng đối số từ khóa đó để chỉ ra tệp được mở ở chế độ ghi hoặc kết nối bổ sung, để thông báo đi thẳng đến tệp đó

'\n'  # Blank line
''    # Empty line
69

Điều này sẽ làm cho mã miễn phí của bạn được mã hóa bằng cách chuyển hướng luồng ở cấp hệ thống điều hành, điều này có thể mong muốn hoặc không thể

Để biết thêm thông tin về cách làm việc với tệp bằng Python , bạn có thể xem Đọc và Viết tệp bằng Python (Hướng dẫn)

Ghi chú. Đừng thử sử dụng 

'\n'  # Blank line
''    # Empty line
45 để ghi dữ liệu nhị phân vì nó chỉ phù hợp với văn bản

Chỉ cần gọi trực tiếp 

'\n'  # Blank line
''    # Empty line
426 của tệp nhị phân

'\n'  # Blank line
''    # Empty line
70

Nếu bạn muốn ghi byte thô trên đầu ra tiêu chuẩn, thì thao tác này cũng sẽ không thành công vì

'\n'  # Blank line
''    # Empty line
428 là một luồng ký tự

>>>

'\n'  # Blank line
''    # Empty line
71

Thay vào đó, bạn phải đào sâu hơn để xử lý luồng byte bên dưới

>>>

'\n'  # Blank line
''    # Empty line
72

Thao tác này sẽ in một chữ cái viết hoa 

'\n'  # Blank line
''    # Empty line
433 và một ký tự xuống dòng, tương ứng với các giá trị thập phân là 65 và 10 trong ASCII. Tuy nhiên, chúng được mã hóa bằng cách sử dụng ký hiệu thập lục phân theo byte chữ

Lưu ý rằng 

'\n'  # Blank line
''    # Empty line
45 không kiểm soát mã hóa ký tự. Luồng có trách nhiệm mã hóa chính xác các chuỗi Unicode đã nhận thành byte. Trong hầu hết các trường hợp, bạn sẽ không tự đặt mã hóa vì UTF-8 mặc định là những gì bạn muốn. Nếu thực sự cần, có lẽ đối với các hệ thống cũ, bạn có thể sử dụng đối số 
'\n'  # Blank line
''    # Empty line
424 của 
'\n'  # Blank line
''    # Empty line
405

'\n'  # Blank line
''    # Empty line
73

Thay vì một tệp thực tồn tại ở đâu đó trong hệ thống tệp của bạn, bạn có thể cung cấp một tệp giả, tệp này sẽ nằm trong bộ nhớ máy tính của bạn. Sau này, bạn sẽ sử dụng kỹ thuật này để chế nhạo 

'\n'  # Blank line
''    # Empty line
45 trong bài kiểm tra đơn vị

>>>

'\n'  # Blank line
''    # Empty line
74

Nếu bạn đã đi đến điểm này, thì bạn chỉ còn lại một đối số từ khóa trong

'\n'  # Blank line
''    # Empty line
45, mà bạn sẽ thấy trong phần phụ tiếp theo. Nó có lẽ ít được sử dụng nhất trong số chúng. Tuy nhiên, có những lúc nó thực sự cần thiết

Bộ nhớ đệm '\n' # Blank line '' # Empty line45 Cuộc gọi

Trong tiểu mục trước, bạn đã biết rằng 

'\n'  # Blank line
''    # Empty line
45 ủy quyền in cho một đối tượng giống như tệp, chẳng hạn như 
'\n'  # Blank line
''    # Empty line
428. Tuy nhiên, một số luồng đệm một số hoạt động I/O nhất định để nâng cao hiệu suất, điều này có thể cản trở. Hãy xem xét một ví dụ

Hãy tưởng tượng bạn đang viết một đồng hồ đếm ngược, đồng hồ này sẽ thêm thời gian còn lại vào cùng một dòng mỗi giây

'\n'  # Blank line
''    # Empty line
75

Nỗ lực đầu tiên của bạn có thể trông giống như thế này

'\n'  # Blank line
''    # Empty line
76

Miễn là biến 

'\n'  # Blank line
''    # Empty line
442 lớn hơn 0, mã sẽ tiếp tục nối thêm văn bản mà không có dòng mới ở cuối rồi chuyển sang chế độ ngủ trong một giây. Cuối cùng, khi quá trình đếm ngược kết thúc, nó in ra 
'\n'  # Blank line
''    # Empty line
443 và kết thúc dòng

Thật bất ngờ, thay vì đếm ngược từng giây, chương trình lại nhàn rỗi một cách lãng phí trong ba giây, rồi đột ngột in toàn bộ dòng cùng một lúc