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.formatteż 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