Ciągi f są dostępne w Pythonie 3.6 i są bardzo przydatne do formatowania ciągów:
>>> n='you'
>>> f'hello {n}, how are you?'
'hello you, how are you?'
Przeczytaj więcej o nich w f-Strings Pythona 3: Ulepszona składnia formatowania łańcuchów (przewodnik) . Znalazłem interesujący wzór:
Zauważ, że użycie potrójnych nawiasów spowoduje, że w łańcuchu będą znajdować się tylko pojedyncze nawiasy:
>>> f"{{{74}}}" '{74}'
Możesz jednak wyświetlić więcej nawiasów klamrowych, aby pokazać, jeśli używasz więcej niż potrójnych nawiasów klamrowych:
>>> f"{{{{74}}}}" '{{74}}'
I dokładnie tak jest:
>>> f'{74}'
'74'
>>> f'{{74}}'
'{74}'
Teraz, jeśli przejdziemy od dwóch {
do trzech, wynik będzie taki sam:
>>> f'{{{74}}}'
'{74}' # same as f'{{74}}' !
Potrzebujemy więc do 4! ( {{{{
), aby uzyskać dwa nawiasy klamrowe jako wynik:
>>> f'{{{{74}}}}'
'{{74}}'
Dlaczego to? Co dzieje się z dwoma nawiasami klamrowymi, aby Python wymagał dodatkowego od tego momentu?
f'{2+2}'
zwraca 4, f'{{2+2}}'
zwraca 2 + 2, f'{{{2+2}}}'
➝ {4}, f'{{{{2+2}}}}'
➝ {{2 + 2}} i tak dalej. Ma to sens, ale na pierwszy rzut oka trochę łamigłówki.
f'{74}'
jest taki sam jak f'74'
.
str.format
też to robi.
"{74}".format(...)
wymagałoby sekwencji z co najmniej 74 elementami.
f"{{2+2}}"
if"{{{2+2}}}"
, które są'{2+2}'
i'{4}'
odpowiednio