Hướng dẫn python continuation to next line - python tiếp tục dòng tiếp theo

Từ PEP 8 - Hướng dẫn kiểu cho mã Python:

Cách ưa thích để gói các đường dài là bằng cách sử dụng tiếp tục dòng ngụ ý của Python bên trong ngoặc đơn, ngoặc và thanh giằng. Các đường dài có thể được phá vỡ trên nhiều dòng bằng cách gói các biểu thức trong ngoặc đơn. Chúng nên được sử dụng theo sở thích để sử dụng dấu gạch chéo ngược để tiếp tục dòng. Long lines can be broken over multiple lines by wrapping expressions in parentheses. These should be used in preference to using a backslash for line continuation.

Backslashes vẫn có thể phù hợp đôi khi. Ví dụ, dài, nhiều người không thể sử dụng tiếp tục ngầm, do đó, các dấu gạch chéo ngược có thể chấp nhận được:

with open('/path/to/some/file/you/want/to/read') as file_1, \
     open('/path/to/some/file/being/written', 'w') as file_2:
     file_2.write(file_1.read())

Một trường hợp như vậy là với các tuyên bố khẳng định.

Hãy chắc chắn để thụt dòng dòng tiếp tục một cách thích hợp. Nơi ưa thích để phá vỡ một toán tử nhị phân là sau người vận hành, không phải trước nó. Vài ví dụ:after the operator, not before it. Some examples:

class Rectangle(Blob):

  def __init__(self, width, height,
                color='black', emphasis=None, highlight=0):
       if (width == 0 and height == 0 and
          color == 'red' and emphasis == 'strong' or
           highlight > 100):
           raise ValueError("sorry, you lose")
       if width == 0 and height == 0 and (color == 'red' or
                                          emphasis is None):
           raise ValueError("I don't think so -- values are %s, %s" %
                            (width, height))
       Blob.__init__(self, width, height,
                     color, emphasis, highlight)file_2.write(file_1.read())

PEP8 hiện khuyến nghị quy ước ngược lại (để phá vỡ các hoạt động nhị phân) được sử dụng bởi các nhà toán học và các nhà xuất bản của họ để cải thiện khả năng đọc.

Phong cách phá vỡ của Donald Knuth trước một toán tử nhị phân sắp xếp các toán tử theo chiều dọc, do đó làm giảm khối lượng công việc của mắt khi xác định các mục nào được thêm và trừ.before a binary operator aligns operators vertically, thus reducing the eye's workload when determining which items are added and subtracted.

Từ PEP8: nên phá vỡ dòng trước hay sau khi vận hành nhị phân?:

Donald Knuth giải thích quy tắc truyền thống trong các máy tính và loạt sắp chữ của mình: "Mặc dù các công thức trong một đoạn văn luôn bị phá vỡ sau khi hoạt động và quan hệ nhị phân, các công thức hiển thị luôn bị phá vỡ trước khi hoạt động nhị phân" [3].

Theo truyền thống từ toán học thường dẫn đến mã dễ đọc hơn:

# Yes: easy to match operators with operands
income = (gross_wages
          + taxable_interest
          + (dividends - qualified_dividends)
          - ira_deduction
          - student_loan_interest)

Trong mã Python, được phép phá vỡ trước hoặc sau một toán tử nhị phân, miễn là quy ước là nhất quán tại địa phương. Đối với phong cách mới của mã Knuth được đề xuất.

[3]: The Texbook của Donald Knuth, trang 195 và 196

Khi sử dụng các trình kiểm tra mã PEP8 như Flake8 trong Python, một lỗi,

class Rectangle(Blob):

  def __init__(self, width, height,
                color='black', emphasis=None, highlight=0):
       if (width == 0 and height == 0 and
          color == 'red' and emphasis == 'strong' or
           highlight > 100):
           raise ValueError("sorry, you lose")
       if width == 0 and height == 0 and (color == 'red' or
                                          emphasis is None):
           raise ValueError("I don't think so -- values are %s, %s" %
                            (width, height))
       Blob.__init__(self, width, height,
                     color, emphasis, highlight)file_2.write(file_1.read())
2, được nêu ra khi một dòng vượt quá 80 ký tự.

Bài viết này mô tả cách viết một chuỗi dài không chứa một dòng mới trên nhiều dòng.

  • Sử dụng dấu gạch chéo ngược (
    class Rectangle(Blob):
    
      def __init__(self, width, height,
                    color='black', emphasis=None, highlight=0):
           if (width == 0 and height == 0 and
              color == 'red' and emphasis == 'strong' or
               highlight > 100):
               raise ValueError("sorry, you lose")
           if width == 0 and height == 0 and (color == 'red' or
                                              emphasis is None):
               raise ValueError("I don't think so -- values are %s, %s" %
                                (width, height))
           Blob.__init__(self, width, height,
                         color, emphasis, highlight)file_2.write(file_1.read())
    
    3) làm ký tự tiếp tục dòng
  • Sử dụng dấu ngoặc đơn

Xem bài viết sau đây cho các hoạt động khác nhau liên quan đến các chuỗi với các lần ngắt dòng.

  • Xử lý các lần phá vỡ dòng (Newlines) trong Python

Nếu bạn muốn bọc hoặc cắt các chuỗi dài, mô -đun TextWrap rất hữu ích. Xem bài viết sau đây.

  • Bọc và cắt ngắn một chuỗi với textwrap trong python

Nếu số lượng ký tự trong một dòng trở nên quá dài do chuỗi phương thức, bạn có thể phá vỡ dòng theo cùng một cách.

  • Chuỗi phương pháp với sự phá vỡ dòng trong Python

Sử dụng dấu gạch chéo ngược (class Rectangle(Blob): def __init__(self, width, height, color='black', emphasis=None, highlight=0): if (width == 0 and height == 0 and color == 'red' and emphasis == 'strong' or highlight > 100): raise ValueError("sorry, you lose") if width == 0 and height == 0 and (color == 'red' or emphasis is None): raise ValueError("I don't think so -- values are %s, %s" % (width, height)) Blob.__init__(self, width, height, color, emphasis, highlight)file_2.write(file_1.read()) 3) làm ký tự tiếp tục dòng

Xem bài viết sau đây cho các hoạt động khác nhau liên quan đến các chuỗi với các lần ngắt dòng.

n = 1 + 2 \
    + 3

print(n)
# 6

Xử lý các lần phá vỡ dòng (Newlines) trong Python

s = 'aaa' 'bbb'

print(s)
# aaabbb

Nếu bạn muốn bọc hoặc cắt các chuỗi dài, mô -đun TextWrap rất hữu ích. Xem bài viết sau đây.

s = 'https://ja.wikipedia.org/wiki/'\
    '%E3%83%97%E3%83%AD%E3%82%B0%E3%83'\
    '%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E'

print(s)
# https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E

Bọc và cắt ngắn một chuỗi với textwrap trong python

s_var = 'xxx'

# s = 'aaa' s_var 'bbb'
# SyntaxError: invalid syntax

Nếu số lượng ký tự trong một dòng trở nên quá dài do chuỗi phương thức, bạn có thể phá vỡ dòng theo cùng một cách.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Chuỗi phương pháp với sự phá vỡ dòng trong Python

s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'\
    + s_var\
    + 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Trong Python, một dấu gạch chéo ngược (

class Rectangle(Blob):

  def __init__(self, width, height,
                color='black', emphasis=None, highlight=0):
       if (width == 0 and height == 0 and
          color == 'red' and emphasis == 'strong' or
           highlight > 100):
           raise ValueError("sorry, you lose")
       if width == 0 and height == 0 and (color == 'red' or
                                          emphasis is None):
           raise ValueError("I don't think so -- values are %s, %s" %
                            (width, height))
       Blob.__init__(self, width, height,
                     color, emphasis, highlight)file_2.write(file_1.read())
3) là một nhân vật tiếp tục dòng. Nếu một dấu gạch chéo ngược được đặt ở cuối một dòng, người ta coi là dòng được tiếp tục trên dòng tiếp theo.

  • Chuỗi Concatenate trong Python (+ toán tử, tham gia, v.v.)

Sử dụng dấu ngoặc đơn

Trong Python, bạn có thể tự do phá vỡ dòng trong ngoặc đơn (

# Yes: easy to match operators with operands
1,
# Yes: easy to match operators with operands
2,
# Yes: easy to match operators with operands
3). Sử dụng quy tắc này, bạn có thể viết một chuỗi dài trên nhiều dòng với dấu ngoặc đơn thay vì dấu gạch chéo ngược.

# Yes: easy to match operators with operands
2 được sử dụng cho
# Yes: easy to match operators with operands
5 và
# Yes: easy to match operators with operands
3 được sử dụng cho
# Yes: easy to match operators with operands
7, sử dụng
# Yes: easy to match operators with operands
1 cho mục đích đó. Lưu ý rằng
# Yes: easy to match operators with operands
9 được tạo bởi dấu phẩy, không phải
# Yes: easy to match operators with operands
1.

  • Một tuple với một yếu tố yêu cầu một dấu phẩy trong Python

Bạn có thể viết như sau.

class Rectangle(Blob):

  def __init__(self, width, height,
                color='black', emphasis=None, highlight=0):
       if (width == 0 and height == 0 and
          color == 'red' and emphasis == 'strong' or
           highlight > 100):
           raise ValueError("sorry, you lose")
       if width == 0 and height == 0 and (color == 'red' or
                                          emphasis is None):
           raise ValueError("I don't think so -- values are %s, %s" %
                            (width, height))
       Blob.__init__(self, width, height,
                     color, emphasis, highlight)file_2.write(file_1.read())
0

Nếu các biến được bao gồm, bạn cần toán tử

class Rectangle(Blob):

  def __init__(self, width, height,
                color='black', emphasis=None, highlight=0):
       if (width == 0 and height == 0 and
          color == 'red' and emphasis == 'strong' or
           highlight > 100):
           raise ValueError("sorry, you lose")
       if width == 0 and height == 0 and (color == 'red' or
                                          emphasis is None):
           raise ValueError("I don't think so -- values are %s, %s" %
                            (width, height))
       Blob.__init__(self, width, height,
                     color, emphasis, highlight)file_2.write(file_1.read())
8.

class Rectangle(Blob):

  def __init__(self, width, height,
                color='black', emphasis=None, highlight=0):
       if (width == 0 and height == 0 and
          color == 'red' and emphasis == 'strong' or
           highlight > 100):
           raise ValueError("sorry, you lose")
       if width == 0 and height == 0 and (color == 'red' or
                                          emphasis is None):
           raise ValueError("I don't think so -- values are %s, %s" %
                            (width, height))
       Blob.__init__(self, width, height,
                     color, emphasis, highlight)file_2.write(file_1.read())
1

Làm thế nào tôi có thể đi đến dòng tiếp theo trong Python?

Trong Python, ký tự dòng mới \ n, được sử dụng để tạo ra một dòng mới.the new line character “\n” is used to create a new line.

Nhân vật tiếp tục dòng trong Python là gì?

Trong Python, một dấu gạch chéo ngược (\) có nghĩa là một nhân vật tiếp tục.Ngoài ra, nếu nó được đặt ở rìa của một dòng, người ta ước tính rằng dòng được tiếp tục, không quan tâm đến các đường mới.a backslash ( \ ) means a continuation character. Also, if it is set at the edge of a line, it is estimated that the line is continued, disregarding following newlines.

Những gì được sử dụng để tiếp tục dòng?

Các dòng trống được cho phép giữa các dòng tiếp tục.Biểu tượng tiếp tục dòng cơ bản (&), không thể được sử dụng với các dòng cân bằng.Nếu bạn muốn tiếp tục một hằng số chuỗi ký tự trên hai dòng, hãy kết thúc dòng đầu tiên bằng ký tự dấu gạch chéo ngược (\) và tiếp tục chuỗi ở đầu dòng tiếp theo.The BASIC line continuation symbol (&), cannot be used with EQUEL lines. If you want to continue a character-string constant across two lines, end the first line with a backslash character (\), and continue the string at the beginning of the next line.