2207
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Ví dụ không làm việc:
print[" \{ Hello \} {0} ".format[42]]
Kết quả mong muốn:
{Hello} 42
Mateen Ulhaq
22.3K16 Huy hiệu vàng86 Huy hiệu bạc127 Huy hiệu đồng16 gold badges86 silver badges127 bronze badges
Đã hỏi ngày 29 tháng 3 năm 2011 lúc 0:04Mar 29, 2011 at 0:04
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
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:{Hello} 42
9 vàn = 42 print[f" {{Hello}} {n} "]
0.{Hello} 42
Đã 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
913K178 Huy hiệu vàng1132 Huy hiệu bạc1267 Huy hiệu đồng178 gold badges1132 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
0n = 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
Divenexdivenexdivenex
13.3k9 Huy hiệu vàng52 Huy hiệu bạc53 Huy hiệu Đồng9 gold badges52 silver badges53 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
913K178 Huy hiệu vàng1132 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
0Sả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
Divenexdivenextwasbrillig
13.3k9 Huy hiệu vàng52 Huy hiệu bạc53 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
0Tô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
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 {Hello} 42
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
913K178 Huy hiệu vàng1132 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
913K178 Huy hiệu vàng1132 Huy hiệu bạc1267 Huy hiệu đồng6 silver badges10 bronze badges
Python 3.6+ [2017]
{Hello} 42
2Trong 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
0Sản xuất mong muốnNov 5, 2015 at 11:22
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
31.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.3k9 Huy hiệu vàng52 Huy hiệu bạc53 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
4Kamil 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
Đ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 badges156 silver badges151 bronze badges
1
{Hello} 42
6Nó sạch hơn so với giải pháp thay thế, đó là:
{Hello} 42
7Sử 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
24.7K11 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
815.6K9 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
9Sau đó, bạn có thể làm một cái gì đó như:
>>> x = " {{ Hello }} {0} "
>>> print[x.format[42]]
' { Hello } 42 '
0Hoàn thành công việc nếu hiệu suất không phải là một vấn đề.
Đã 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 '
1bản in nào
>>> x = " {{ Hello }} {0} "
>>> print[x.format[42]]
' { Hello } 42 '
2Nó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
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 '
3hoặ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.8412 Huy hiệu vàng14 Huy hiệu bạc18 Huy hiệu đồng2 gold badges14 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:{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ạc33 Huy hiệu đồng1 gold badge13 silver badges33 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 '
8Một ví dụ rõ ràng hơn sẽ là
>>> x = " {{ Hello }} {0} "
>>> print[x.format[42]]
' { Hello } 42 '
9Output:
n = 42
print[f" {{Hello}} {n} "]
0Bây giờ, thêm tường báo như vậy:
n = 42
print[f" {{Hello}} {n} "]
1Output:
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
Ann Zenann ZenAnn Zen
25.8K7 Huy hiệu vàng32 Huy hiệu bạc52 Huy hiệu Đồng7 gold badges32 silver badges52 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} "]
3Tuyê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
6849 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
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} "]
6Vì 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
BPLBPLBPL
9,9588 Huy hiệu vàng53 Huy hiệu bạc111 Huy hiệu đồng8 gold badges53 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
RunorveithrunorveithRunOrVeith
4.1204 Huy hiệu vàng29 Huy hiệu bạc44 Huy hiệu đồng4 gold badges29 silver badges44 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.5211 Huy hiệu vàng17 Huy hiệu bạc34 Huy hiệu đồng1 gold badge17 silver badges34 bronze badges