Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

Ví dụ không làm việc:

print(" \{ Hello \} {0} ".format(42))

Kết quả mong muốn:

 {Hello} 42 

Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

Mateen Ulhaq

22.6K16 Huy hiệu vàng87 Huy hiệu bạc128 Huy hiệu đồng16 gold badges87 silver badges128 bronze badges

Đã hỏi ngày 29 tháng 3 năm 2011 lúc 0:04Mar 29, 2011 at 0:04

Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

3

Bạn cần tăng gấp đôi

n = 42  
print(f" {{Hello}} {n} ")
9 và
 {Hello} 42
0:

>>> x = " {{ Hello }} {0} "
>>> print(x.format(42))
' { Hello } 42 '

Đây là phần có liên quan của tài liệu Python cho cú pháp 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

 {Hello} 42
1. 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:
n = 42  
print(f" {{Hello}} {n} ")
9 và
 {Hello} 42
0.

Đã trả lời ngày 29 tháng 3 năm 2011 lúc 0:08Mar 29, 2011 at 0:08

Greg Hewgillgreg HewgillGreg Hewgill

917K178 Huy hiệu vàng1134 Huy hiệu bạc1267 Huy hiệu đồng178 gold badges1134 silver badges1267 bronze badges

14

Python 3.6+ (2017)

Trong các phiên bản gần đây của Python, người ta sẽ sử dụng các chuỗi F (xem thêm PEP498).

Với F-String, người ta nên sử dụng Double

n = 42  
print(f" {{Hello}} {n} ")
9 hoặc
 {Hello} 42
0

n = 42  
print(f" {{Hello}} {n} ")

Sản xuất mong muốn

 {Hello} 42

Nếu bạn cần giải quyết một biểu thức trong ngoặc thay vì sử dụng văn bản theo nghĩa đen, bạn sẽ cần ba bộ dấu ngoặc:

hello = "HELLO"
print(f"{{{hello.lower()}}}")

sản xuất

{hello}

Bryan Bryce

1.2831 Huy hiệu vàng16 Huy hiệu bạc28 Huy hiệu đồng1 gold badge16 silver badges28 bronze badges

Đã trả lời ngày 21 tháng 12 năm 2017 lúc 11:12Dec 21, 2017 at 11:12

Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

Divenexdivenexdivenex

13,5K9 Huy hiệu vàng53 Huy hiệu bạc54 Huy hiệu đồng9 gold badges53 silver badges54 bronze badges

6

Bạn thoát khỏi nó bằng cách nhân đôi niềng răng.

Eg:

x = "{{ Hello }} {0}"
print(x.format(42))

Đã trả lời ngày 29 tháng 3 năm 2011 lúc 0:08Mar 29, 2011 at 0:08

Greg Hewgillgreg HewgillKamil Kisiel

917K178 Huy hiệu vàng1134 Huy hiệu bạc1267 Huy hiệu đồng11 gold badges46 silver badges54 bronze badges

0

Python 3.6+ (2017)

Trong các phiên bản gần đây của Python, người ta sẽ sử dụng các chuỗi F (xem thêm PEP498).

Với F-String, người ta nên sử dụng Double

n = 42  
print(f" {{Hello}} {n} ")
9 hoặc
 {Hello} 42
0

Sản xuất mong muốn

import json
data = "1,2"
mydict = {"all": "false", "selected": data}
json.dumps(mydict)

Nếu bạn cần giải quyết một biểu thức trong ngoặc thay vì sử dụng văn bản theo nghĩa đen, bạn sẽ cần ba bộ dấu ngoặc:

'{{"all": false, "selected": "{}"}}'.format(data)

sản xuất

Bryan Bryce

1.2831 Huy hiệu vàng16 Huy hiệu bạc28 Huy hiệu đồng11 gold badges79 silver badges118 bronze badges

Đã trả lời ngày 21 tháng 12 năm 2017 lúc 11:12Jun 6, 2016 at 18:59

Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

Divenexdivenextwasbrillig

13,5K9 Huy hiệu vàng53 Huy hiệu bạc54 Huy hiệu đồng9 gold badges40 silver badges62 bronze badges

5

Bạn thoát khỏi nó bằng cách nhân đôi niềng răng.

Kamil Kisielkamil Kisiel

19.1k11 Huy hiệu vàng46 Huy hiệu bạc54 Huy hiệu đồng

OP đã viết bình luận này:

 {Hello} 42 
0

Tôi đã cố gắng định dạng một JSON nhỏ cho một số mục đích, như thế này:

 {Hello} 42
6 để có được một cái gì đó như
 {Hello} 42
7

Điều khá phổ biến là vấn đề "thoát khỏi niềng răng" xuất hiện khi đối phó với JSON.

Tôi đề nghị làm điều này:Sep 24, 2021 at 20:37

Nó sạch hơn so với giải pháp thay thế, đó là:Nicoolasens

Sử dụng thư viện

 {Hello} 42
8 chắc chắn là thích hợp khi chuỗi JSON trở nên phức tạp hơn so với ví dụ.16 silver badges21 bronze badges

Nick T.

hello = "HELLO"
print(f"{{{hello.lower()}}}")
5

Đã trả lời ngày 29 tháng 3 năm 2011 lúc 0:08Mar 29, 2011 at 0:08

Greg Hewgillgreg Hewgillpajton

917K178 Huy hiệu vàng1134 Huy hiệu bạc1267 Huy hiệu đồng8 gold badges54 silver badges65 bronze badges

Python 3.6+ (2017)

 {Hello} 42 
1

Đã trả lời ngày 29 tháng 3 năm 2011 lúc 0:08Mar 29, 2011 at 0:08

Greg Hewgillgreg HewgillDNR

917K178 Huy hiệu vàng1134 Huy hiệu bạc1267 Huy hiệu đồng6 silver badges10 bronze badges

Python 3.6+ (2017)

 {Hello} 42 
2

Trong các phiên bản gần đây của Python, người ta sẽ sử dụng các chuỗi F (xem thêm PEP498).

Với F-String, người ta nên sử dụng Double

n = 42  
print(f" {{Hello}} {n} ")
9 hoặc
 {Hello} 42
0

Sản xuất mong muốnNov 5, 2015 at 11:22

Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

Nếu bạn cần giải quyết một biểu thức trong ngoặc thay vì sử dụng văn bản theo nghĩa đen, bạn sẽ cần ba bộ dấu ngoặc:George Aprilis

sản xuất1 gold badge9 silver badges23 bronze badges

0

Bryan Bryce

 {Hello} 42 
3

1.2831 Huy hiệu vàng16 Huy hiệu bạc28 Huy hiệu đồngJun 24, 2019 at 19:55

Đã trả lời ngày 21 tháng 12 năm 2017 lúc 11:12Richard

Divenexdivenex21 silver badges21 bronze badges

2

13,5K9 Huy hiệu vàng53 Huy hiệu bạc54 Huy hiệu đồng

Bạn thoát khỏi nó bằng cách nhân đôi niềng răng.avoid having to double the curly brackets by using f-strings ONLY for the parts of the string where you want the f-magic to apply, and using regular (dumb) strings for everything that is literal and might contain 'unsafe' special characters. Let python do the string joining for you simply by stacking multiple strings together.

 {Hello} 42 
4

Kamil Kisielkamil Kisiel

19.1k11 Huy hiệu vàng46 Huy hiệu bạc54 Huy hiệu đồng

OP đã viết bình luận này:

Tôi đã cố gắng định dạng một JSON nhỏ cho một số mục đích, như thế này:

 {Hello} 42
6 để có được một cái gì đó như
 {Hello} 42
7Jul 6, 2021 at 21:55

Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

Điều khá phổ biến là vấn đề "thoát khỏi niềng răng" xuất hiện khi đối phó với JSON.ccpizza

Tôi đề nghị làm điều này:15 gold badges158 silver badges155 bronze badges

1

 {Hello} 42 
6

Nó sạch hơn so với giải pháp thay thế, đó là:

 {Hello} 42 
7

Sử dụng thư viện

 {Hello} 42
8 chắc chắn là thích hợp khi chuỗi JSON trở nên phức tạp hơn so với ví dụ.

Nick T.Dec 23, 2021 at 17:49

Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

24.8K11 Huy hiệu vàng79 Huy hiệu bạc118 Huy hiệu đồngdefiant

Đã trả lời ngày 6 tháng 6 năm 2016 lúc 18:5910 gold badges38 silver badges60 bronze badges

Twasbrilligtwasbrillig

 {Hello} 42 
8

15.7k9 Huy hiệu vàng40 Huy hiệu bạc62 Huy hiệu Đồng

Bạn muốn định dạng một chuỗi với ký tự

 {Hello} 42
9 hoặc
hello = "HELLO"
print(f"{{{hello.lower()}}}")
0Nov 29, 2016 at 23:43

tvt173tvt173tvt173

Bạn chỉ cần nhân đôi chúng.19 silver badges17 bronze badges

3

Định dạng

 {Hello} 42
9 với
hello = "HELLO"
print(f"{{{hello.lower()}}}")
2 và
hello = "HELLO"
print(f"{{{hello.lower()}}}")
0 với
hello = "HELLO"
print(f"{{{hello.lower()}}}")
4

 {Hello} 42 
9

Vì thế :

>>> x = " {{ Hello }} {0} "
>>> print(x.format(42))
' { Hello } 42 '
0

Đầu ra:

Đã trả lời ngày 17 tháng 12 năm 2019 lúc 9:37Dec 17, 2019 at 9:37

3

Tôi đến muộn một cách lố bịch đến bữa tiệc này. Tôi đang thành công khi đặt dấu ngoặc trong yếu tố thay thế, như thế này:

>>> x = " {{ Hello }} {0} "
>>> print(x.format(42))
' { Hello } 42 '
1

bản in nào

>>> x = " {{ Hello }} {0} "
>>> print(x.format(42))
' { Hello } 42 '
2

Nói đúng ra, đây không phải là điều OP đang hỏi, vì anh ấy muốn niềng răng trong chuỗi định dạng, nhưng điều này có thể giúp ai đó.

Đã trả lời ngày 11 tháng 12 năm 2020 lúc 19:05Dec 11, 2020 at 19:05

Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

1

Lý do là,

 {Hello} 42
1 là cú pháp của
{hello}
1 vì vậy trong trường hợp của bạn
{hello}
1 không nhận ra
{hello}
3 vì vậy nó đã gây ra lỗi.

Bạn có thể ghi đè nó bằng cách sử dụng niềng răng đôi {{}},

>>> x = " {{ Hello }} {0} "
>>> print(x.format(42))
' { Hello } 42 '
3

hoặc

thử

{hello}
4 để định dạng văn bản,

>>> x = " {{ Hello }} {0} "
>>> print(x.format(42))
' { Hello } 42 '
4

Đã trả lời ngày 27 tháng 6 năm 2017 lúc 12:40Jun 27, 2017 at 12:40

Nếu bạn muốn in chỉ một mặt của nẹp xoăn:

>>> x = " {{ Hello }} {0} "
>>> print(x.format(42))
' { Hello } 42 '
5

Đã trả lời ngày 25 tháng 7 năm 2021 lúc 15:35Jul 25, 2021 at 15:35

DalyagdalyagDalyaG

2.8612 Huy hiệu vàng15 Huy hiệu bạc18 Huy hiệu đồng2 gold badges15 silver badges18 bronze badges

1

Tôi tình cờ thấy vấn đề này khi cố gắng in văn bản, mà tôi có thể sao chép dán vào một tài liệu latex. Tôi mở rộng câu trả lời này và sử dụng các trường thay thế được đặt tên:

Giả sử bạn muốn in ra một sản phẩm của các biến Mulitple với các chỉ số như, trong latex sẽ là

{hello}
5 Mã sau đây thực hiện công việc với các trường được đặt tên để đối với nhiều chỉ số, nó vẫn có thể đọc được:
Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python
, which in Latex would be
{hello}
5 The following code does the job with named fields so that for many indices it stays readable:

>>> x = " {{ Hello }} {0} "
>>> print(x.format(42))
' { Hello } 42 '
6

Đã trả lời ngày 19 tháng 11 năm 2019 lúc 18:56Nov 19, 2019 at 18:56

v.tralalav.tralalav.tralala

1.2631 Huy hiệu vàng13 Huy hiệu bạc34 Huy hiệu đồng1 gold badge13 silver badges34 bronze badges

Bạn có thể sử dụng "tường trích dẫn" để tách phần chuỗi được định dạng khỏi phần chuỗi thông thường.

From:

>>> x = " {{ Hello }} {0} "
>>> print(x.format(42))
' { Hello } 42 '
7

đến

>>> x = " {{ Hello }} {0} "
>>> print(x.format(42))
' { Hello } 42 '
8

Một ví dụ rõ ràng hơn sẽ là

>>> x = " {{ Hello }} {0} "
>>> print(x.format(42))
' { Hello } 42 '
9

Output:

n = 42  
print(f" {{Hello}} {n} ")
0

Bây giờ, thêm tường báo như vậy:

n = 42  
print(f" {{Hello}} {n} ")
1

Output:

n = 42  
print(f" {{Hello}} {n} ")
2

Đã trả lời ngày 31 tháng 12 năm 2020 lúc 21:13Dec 31, 2020 at 21:13

Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

Ann Zenann ZenAnn Zen

26K7 Huy hiệu vàng33 Huy hiệu bạc54 Huy hiệu đồng7 gold badges33 silver badges54 bronze badges

2

Tôi đã sử dụng gấp đôi {{}} để ngăn chặn việc tiêm giá trị fstring,

Ví dụ: đây là câu lệnh cập nhật Postgres của tôi để cập nhật cột mảng số nguyên lấy biểu thức {} để chụp mảng, tức là:

cổng = '{100.200.300}'

với fstrings của nó,

n = 42  
print(f" {{Hello}} {n} ")
3

Tuyên bố truy vấn thực tế sẽ là,

n = 42  
print(f" {{Hello}} {n} ")
4

đó là một sự kiện sau đó là một postgres hợp lệ

Đã trả lời ngày 15 tháng 6 năm 2021 lúc 2:14Jun 15, 2021 at 2:14

perfecto25perfecto25perfecto25

7149 Huy hiệu bạc11 Huy hiệu đồng9 silver badges11 bronze badges

Nếu bạn muốn chỉ in một nẹp xoăn (ví dụ

 {Hello} 42
9), bạn có thể sử dụng
n = 42  
print(f" {{Hello}} {n} ")
9 và bạn có thể thêm niềng răng sau này trong chuỗi nếu bạn muốn. Ví dụ:only print one curly brace (for example
 {Hello} 42
9) you can use
n = 42  
print(f" {{Hello}} {n} ")
9, and you can add more braces later in the string if you want. For example:

n = 42  
print(f" {{Hello}} {n} ")
5

Đã trả lời ngày 23 tháng 3 năm 2020 lúc 1:32Mar 23, 2020 at 1:32

Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

Khi bạn chỉ đang cố gắng nội suy các chuỗi mã, tôi sẽ đề xuất sử dụng jinja2, đây là một công cụ mẫu đầy đủ tính năng cho Python, tức là:

n = 42  
print(f" {{Hello}} {n} ")
6

Vì vậy, bạn sẽ không được thi hành để nhân đôi niềng răng xoăn vì toàn bộ câu trả lời khác

Đã trả lời ngày 2 tháng 4 năm 2020 lúc 11:00Apr 2, 2020 at 11:00

Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

BPLBPLBPL

10k8 Huy hiệu vàng54 Huy hiệu bạc111 Huy hiệu đồng8 gold badges54 silver badges111 bronze badges

1

Nếu bạn cần niềng răng xoăn trong mẫu F-String có thể được định dạng, bạn cần xuất ra một chuỗi chứa hai niềng răng xoăn trong một bộ niềng răng xoăn cho chuỗi F:

n = 42  
print(f" {{Hello}} {n} ")
7

Đã trả lời ngày 28 tháng 1 năm 2021 lúc 9:40Jan 28, 2021 at 9:40

Hướng dẫn python f-string curly brace - dấu ngoặc nhọn f-string python

RunorveithrunorveithRunOrVeith

4.1554 Huy hiệu vàng31 Huy hiệu bạc45 Huy hiệu Đồng4 gold badges31 silver badges45 bronze badges

2

Hay chỉ tham gia vào giá đỡ? Có lẽ rất dài dòng.

n = 42  
print(f" {{Hello}} {n} ")
8

Đã trả lời ngày 21 tháng 4 năm 2021 lúc 17:10Apr 21, 2021 at 17:10

MortzmortzMortz

4.5411 Huy hiệu vàng19 Huy hiệu bạc35 Huy hiệu đồng1 gold badge19 silver badges35 bronze badges