Bạn không thể. Dấu gạch chéo ngược không được xuất hiện bên trong dấu ngoặc nhọn {}
; làm như vậy dẫn đến SyntaxError
:
>>> f'{\}'
SyntaxError: f-string expression part cannot include a backslash
Điều này được chỉ định trong PEP cho f-string:
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, [...]
Một tùy chọn là giả '\n'
định một tên và sau đó đặt tên đó .join
bên trong f
-string; nghĩa là, không sử dụng một chữ:
names = ['Adam', 'Bob', 'Cyril']
nl = '\n'
text = f"Winners are:{nl}{nl.join(names)}"
print(text)
Kết quả trong:
Winners are:
Adam
Bob
Cyril
Một tùy chọn khác, như được chỉ định bởi @wim, là sử dụng chr(10)
để được \n
trả lại và sau đó tham gia ở đó.f"Winners are:\n{chr(10).join(names)}"
Tuy nhiên, một cách khác, tất nhiên, là đặt '\n'.join
trước và sau đó thêm tên cho phù hợp:
n = "\n".join(names)
text = f"Winners are:\n{n}"
mà kết quả là cùng một đầu ra.
Ghi chú:
Đây là một trong những khác biệt nhỏ giữa f
-strings và str.format
. Trong phần sau, bạn luôn có thể sử dụng dấu câu được cấp để giải nén một câu lệnh lập dị tương ứng có chứa các khóa đó:
>>> "{\\} {*}".format(**{"\\": 'Hello', "*": 'World!'})
"Hello World!"
(Vui lòng không làm điều này.)
Trước đây, dấu chấm câu không được phép vì bạn không thể có số nhận dạng sử dụng chúng.
Ngoài ra: Tôi chắc chắn sẽ chọn print
hoặc format
, như các câu trả lời khác đề xuất như một sự thay thế. Các tùy chọn tôi đã đưa ra chỉ áp dụng nếu vì lý do nào đó bạn phải sử dụng chuỗi f.
Chỉ vì một cái gì đó mới, không có nghĩa là bạn nên thử và làm mọi thứ với nó ;-)
f"Winners are:\n{chr(10).join(names)}"