f-Strings sind in Python 3.6 verfügbar und sehr nützlich zum Formatieren von Strings:
>>> n='you'
>>> f'hello {n}, how are you?'
'hello you, how are you?'
Weitere Informationen hierzu finden Sie in Python 3s f-Strings: Eine verbesserte Syntax zur Formatierung von Zeichenfolgen (Handbuch) . Ich habe ein interessantes Muster gefunden:
Beachten Sie, dass die Verwendung dreifacher Klammern dazu führt, dass Ihre Zeichenfolge nur einzelne Klammern enthält:
>>> f"{{{74}}}" '{74}'
Sie können jedoch mehr Klammern anzeigen, wenn Sie mehr als dreifache Klammern verwenden:
>>> f"{{{{74}}}}" '{{74}}'
Und genau das ist der Fall:
>>> f'{74}'
'74'
>>> f'{{74}}'
'{74}'
Wenn wir nun von zwei {
auf drei gehen, ist das Ergebnis dasselbe:
>>> f'{{{74}}}'
'{74}' # same as f'{{74}}' !
Wir brauchen also bis zu 4! ( {{{{
) um zwei geschweifte Klammern als Ausgabe zu erhalten:
>>> f'{{{{74}}}}'
'{{74}}'
Warum ist das? Was passiert mit zwei geschweiften Klammern, damit Python von diesem Moment an eine zusätzliche benötigt?
f'{2+2}'
4, f'{{2+2}}'
2 + 2, f'{{{2+2}}}'
returns {4}, f'{{{{2+2}}}}'
➝ {{2 + 2}} usw. zurückgegeben werden. Es macht Sinn, rätselt aber auf den ersten Blick ein bisschen.
f'{74}'
es dasselbe ist wie f'74'
.
str.format
macht das auch.
"{74}".format(...)
würde eine Sequenz mit mindestens 74 Elementen erfordern.
f"{{2+2}}"
undf"{{{2+2}}}"
, das sind'{2+2}'
und'{4}'
jeweils