Thêm dòng mới trong Python

Trong Python, không thể bao gồm dấu gạch chéo ngược trong dấu ngoặc nhọn

nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
0 của chuỗi f. Làm như vậy sẽ dẫn đến một
nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
1

>>> f'{\}'
SyntaxError: f-string expression part cannot include a backslash

Hành vi này hoàn toàn phù hợp với nội suy chuỗi ký tự

Dấu gạch chéo ngược có thể không xuất hiện bên trong các phần biểu thức của chuỗi f, vì vậy, bạn không thể sử dụng chúng, ví dụ: để thoát dấu ngoặc kép bên trong chuỗi f

Trong các phần sau, chúng ta sẽ khám phá một số tùy chọn mà bạn có thể sử dụng để thêm dấu gạch chéo ngược (bao gồm cả các dòng mới) trong f-strings

Sử dụng dấu gạch chéo ngược trong chuỗi f

Như chúng ta đã thảo luận, dấu gạch chéo ngược không thể được sử dụng trực tiếp trong Python f-strings. Tuy nhiên, có một cách giải quyết dễ dàng cho phép chúng tôi bao gồm các dấu gạch chéo ngược để biểu thị các dòng, tab mới, v.v.

Giả sử rằng chúng ta có một danh sách các số nguyên mà chúng ta muốn in ra đầu ra tiêu chuẩn

nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")

Như mong đợi, ở trên sẽ thất bại với

SyntaxError: f-string expression part cannot include a backslash

Một cách giải quyết khác là thêm ký tự dòng mới (i. e.

nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
2) thành một biến chuỗi và sau đó tham chiếu biến đó khi in ra các số. Ví dụ,

new_line = '\n'
nums = [10, 20, 30]
print(f"Numbers:{new_line}{new_line.join(map(str, nums))}")

Và đầu ra phải là

Numbers:
10
20
30

Lưu ý rằng bạn có thể làm điều này cho hầu hết mọi ký tự yêu cầu dấu gạch chéo ngược. Chẳng hạn, giả sử bạn muốn sử dụng một tab trong f-string. Sau đây nên lừa

________số 8

Cách thêm dòng mới trong chuỗi f

Đặc biệt, đối với các dòng mới, cũng có một cách tiếp cận khác mà chúng ta có thể làm theo để thêm các ký tự dòng mới trong Python f-strings

Gói

nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
3 đi kèm với một số chức năng về Thông tin hệ thống khác. Điều này bao gồm
nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
4 trả về ký tự dòng mới

Chuỗi được sử dụng để phân tách (hay đúng hơn là chấm dứt) các dòng trên nền tảng hiện tại. Đây có thể là một ký tự đơn, chẳng hạn như

nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
2 cho POSIX hoặc nhiều ký tự, chẳng hạn như
nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
6 cho Windows

Ví dụ,

nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
3

Và đầu ra sẽ lại là

Numbers:
10
20
30

Lưu ý rằng bạn phải tránh sử dụng

nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
7 làm dấu kết thúc dòng khi ghi tệp được mở ở chế độ văn bản. Thay vào đó, bạn phải sử dụng một
nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
2 duy nhất

Một khả năng khác là sử dụng hàm

nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
9 để tạo một ký tự dòng mới. Hàm
nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
9 trong Python trả về một chuỗi đại diện của số nguyên đầu vào tương ứng với một ký tự Unicode. Giá trị thập phân của
SyntaxError: f-string expression part cannot include a backslash
1 trong Unicode tương đương với nguồn cấp dữ liệu dòng (i. e. dòng mới)

>>> f'{\}'
SyntaxError: f-string expression part cannot include a backslash
0

Do đó, để thêm các dòng mới trong chuỗi f bằng cách sử dụng

nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
9, tất cả những gì bạn cần làm là

>>> f'{\}'
SyntaxError: f-string expression part cannot include a backslash
2

Suy nghĩ cuối cùng

Trong bài viết hôm nay, chúng ta đã thảo luận về một hạn chế của Python khiến chúng ta không thể sử dụng dấu gạch chéo ngược trong chuỗi f. Chúng tôi đã giới thiệu một vài cách giải quyết khả thi và chúng tôi cũng đã khám phá cụ thể cách thêm hoàn toàn các dòng mới trong chuỗi f Python

Về cơ bản, bạn có ba lựa chọn; . Cách giải quyết thứ hai là sử dụng

nums = [10, 20, 30] 
print(f"Numbers:\n {'\n'.join(map(str, nums))}")
7 trả về ký tự dòng mới và cách tiếp cận cuối cùng là sử dụng
SyntaxError: f-string expression part cannot include a backslash
4 tương ứng với ký tự dòng mới Unicode

Viết bằng Python có thêm một dòng mới không?

Câu lệnh in tự động thêm một dòng mới, nhưng phương thức ghi không tự động thêm dòng mới .

\r trong Python là gì?

Trong các chuỗi Python, dấu gạch chéo ngược "\" là một ký tự đặc biệt, còn được gọi là ký tự "thoát". Nó được sử dụng để đại diện cho các ký tự khoảng trắng nhất định. "\t" là một tab, "\n" là một dòng mới và "\r" là dấu xuống dòng .

Bạn có thể tách \n bằng Python không?

Phương pháp 2. Sử dụng hàm strip() để xóa ký tự dòng mới khỏi chuỗi trong Python . Hàm có sẵn phương thức strip() của Python được sử dụng để xóa tất cả các khoảng trắng ở đầu và cuối khỏi một chuỗi. Nhiệm vụ của chúng tôi có thể được thực hiện bằng hàm dải() trong đó chúng tôi kiểm tra “\n” dưới dạng một chuỗi trong một chuỗi.