Cách in Brace xoăn theo nghĩa đen Làm thế nào để thoát khỏi nẹp đúng cách trong Python.
Chuỗi được định dạng theo nghĩa đen hoặc chuỗi F được giới thiệu trong Python 3.6.
Một chuỗi được định dạng theo nghĩa đen hoặc chuỗi F là một chuỗi theo nghĩa đen được đặt trước với ‘f, hoặc‘ f. Các chuỗi này có thể chứa các trường thay thế, được phân tách bằng niềng răng xoăn {}. Trong khi các chuỗi chuỗi khác luôn có giá trị không đổi, các chuỗi được định dạng thực sự là biểu thức được đánh giá tại thời điểm chạy.
Nếu bạn muốn in nẹp xoăn theo nghĩa đen mà không có bất kỳ lối thoát nào, bạn sẽ theo dõi:
>>> print[f"{"]
File "", line 1
print[f"{"]
^
SyntaxError: f-string: expecting '}'
>>> print[f"}"]
File "", line 1
print[f"}"]
^
SyntaxError: f-string: single '}' is not allowed
\
Không thể sử dụng thoát, bạn sẽ gặp lỗi SyntaxError
:
>>> print[f"\{"]
File "", line 1
print[f"\{"]
^
SyntaxError: f-string: expecting '}'
>>> print[f"\}"]
File "", line 1
print[f"\}"]
^
SyntaxError: f-string: single '}' is not allowed
Theo định nghĩa chuỗi f:
Trình tự thoát được giải mã giống như trong các chuỗi chuỗi thông thường [ngoại trừ khi một nghĩa đen cũng được đánh dấu là một chuỗi thô]. Sau khi giải mã, ngữ pháp cho nội dung của chuỗi là:
f_string ::= [literal_char | "{{" | "}}" | replacement_field]*
replacement_field ::= "{" f_expression ["="] ["!" conversion] [":" format_spec] "}"
f_expression ::= [conditional_expression | "*" or_expr]
["," conditional_expression | "," "*" or_expr]* [","]
| yield_expression
conversion ::= "s" | "r" | "a"
format_spec ::= [literal_char | NULL | replacement_field]*
literal_char ::=
Các phần của chuỗi bên ngoài niềng răng xoăn được xử lý theo nghĩa đen, ngoại trừ bất kỳ niềng răng xoăn gấp đôi nào
'{{'
hoặc'}}'
được thay thế bằng niềng xoăn đơn tương ứng. Một khung mở của khung xoăn'{'
đánh dấu một trường thay thế, bắt đầu bằng biểu thức Python.
Mã sau hoạt động:
>>> print[f"{{"]
{
>>> print[f"}}"]
}
>>> print[f"{{}}"]
{}
>>> print[f"{{foo}}"]
{foo}
Thủ thuật này cũng áp dụng cho chuỗi định dạng:
Các chuỗi định dạng có chứa các trường thay thế trên mạng, được bao quanh bởi niềng răng xoăn {}. Bất cứ điều gì không chứa trong niềng răng đều được coi là văn bản theo nghĩa đen, được sao chép không thay đổi với đầu ra. Nếu bạn cần bao gồm một ký tự nẹp trong văn bản theo nghĩa đen, nó có thể được thoát ra bằng cách nhân đôi: {{và}}.
Ví dụ sau đây là ví dụ làm thế nào để in giằng xoăn theo nghĩa đen '{'
trong chuỗi định dạng:
>>> print["{ {}".format["Foo"]]
Traceback [most recent call last]:
File "", line 1, in
ValueError: unexpected '{' in field name
>>> print["{{ {}".format["Foo"]]
{ Foo
>>> print["}} {}".format["Foo"]]
} Foo
>>> print["{{{{}}}} {}".format["Foo"]]
{{}} Foo
>>> print["{{{}}} {}".format["Foo"]]
Traceback [most recent call last]:
File "", line 1, in
IndexError: Replacement index 1 out of range for positional args tuple
Người giới thiệu
- //docs.python.org/3/reference/lexical_analysis.html#f-strings
- //docs.python.org/3/library/string.html#formatstrings
Tường lửa DNS cho iOS
Đã mã hóa DNS của bạn để bảo vệ quyền riêng tư và tường lửa của bạn để chặn lừa đảo, các miền độc hại, chặn quảng cáo trong tất cả các trình duyệt và ứng dụng
Quảng cáo