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ố 8Cá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ớiChuỗ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]
2 cho POSIX hoặc nhiều ký tự, chẳng hạn như
print[f"Numbers:\n {'\n'.join[map[str, nums]]}"]nums = [10, 20, 30]
6 cho Windows
print[f"Numbers:\n {'\n'.join[map[str, nums]]}"]
Ví dụ,
nums = [10, 20, 30]
print[f"Numbers:\n {'\n'.join[map[str, nums]]}"]
3Và đầ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ấtMộ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
0Do đó, để 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
2Suy 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