Chuỗi f có sẵn từ Python 3.6 và rất hữu ích để định dạng chuỗi:
>>> n='you'
>>> f'hello {n}, how are you?'
'hello you, how are you?'
Đọc thêm về chúng trong f-String của Python 3: Cú pháp định dạng chuỗi cải tiến (Hướng dẫn) . Tôi tìm thấy một mô hình thú vị:
Lưu ý rằng việc sử dụng ba dấu ngoặc nhọn sẽ dẫn đến việc chỉ có các dấu ngoặc đơn trong chuỗi của bạn:
>>> f"{{{74}}}" '{74}'
Tuy nhiên, bạn có thể nhận được nhiều dấu ngoặc nhọn hơn nếu bạn sử dụng nhiều hơn ba lần niềng răng:
>>> f"{{{{74}}}}" '{{74}}'
Và đây chính xác là trường hợp:
>>> f'{74}'
'74'
>>> f'{{74}}'
'{74}'
Bây giờ nếu chúng ta truyền từ hai {
đến ba, kết quả là như nhau:
>>> f'{{{74}}}'
'{74}' # same as f'{{74}}' !
Vì vậy, chúng tôi cần tới 4! ( {{{{
) để có được hai dấu ngoặc nhọn như một đầu ra:
>>> f'{{{{74}}}}'
'{{74}}'
Tại sao lại thế này? Điều gì xảy ra với hai lần niềng răng để Python yêu cầu thêm một lần nữa kể từ thời điểm đó?
f'{2+2}'
trả về 4, f'{{2+2}}'
trả về 2 + 2, f'{{{2+2}}}'
{4}, f'{{{{2+2}}}}'
{{2 + 2}}, v.v. Nó có ý nghĩa nhưng đánh đố một chút về cái nhìn đầu tiên.
f'{74}'
nó giống như f'74'
.
str.format
cũng làm điều này.
"{74}".format(...)
sẽ yêu cầu một chuỗi có ít nhất 74 phần tử.
f"{{2+2}}"
vàf"{{{2+2}}}"
, đó là'{2+2}'
và'{4}'
tương ứng