[Python-de] Re: Muss ich % immer escapen?

Henning Reich <[email protected]> Thu, 22 Jun 2023 15:20:05 +0200
Newsgroups gmane.comp.python.general.german
Message-ID <CAAUWxv=gw97LHuTOQ6LeT-dEZOwLzACjJtuvx3cspykuLRDUeA@mail.gmail.com>
Rein aus Python Sicht brauchts kein Escaping fürs %. Ich würde aber dennoch
auf F-Strings wechseln, da deutlich besser Lesbar.

>>> minFreeInodes=123
>>> print(f'There are {minFreeInodes}% free')
There are 123% free

ggf. mit deinem Workaround:

>>> minFreeInodes=123
>>> minFreeInodes_percent=f'{minFreeInodes}%'
>>> print(f'There are {minFreeInodes_percent} free')
There are 123% free



Am Do., 22. Juni 2023 um 14:53 Uhr schrieb <[email protected]>:

> Hallo Petter,
>
> danke für die Rückmeldung und entschuldige meinen Bullshit-Code. Das
> ging daneben.
>
> OK, vielleicht ist das reale Beispiel einfacher. So habe ich print nie
> verwendet, aber das scheint valider Code zu sein.
>
>      print(_('Trying to keep min %d%% free inodes') % minFreeInodes)
>
> Nun wollte ich das "modernisieren", auch weil die Übersetzer mit "%d%%"
> oft nichts anfangen können.
>
>      print(_('Trying to keep min {perc}% free
> inodes').format(perc=minFreeInodes))
>
> Das geht auch. Aber meine Übersetzungsplatform (Weblate 4.17) moniert
> hier ein Problem: Nach dem % ist ein Leerzeichen und danach kommt ein f
> . Weblate denkt, es müsste dort %f heißen und moniert es. Würde ich das
> % an der Stelle escapen meckert Weblate nicht.
>
> Liegt Weblate hier falsch bzw. ist einfach zu umodern/unflexibel? Muss
> ich bei dem zweiten Beispiel das % eigentlich escapen und der Python
> Interpreter ist hier einfach nur gnädig mit mir und lässt es mir
> durchgehen, obwohl es nicht Standard/PEP-konform ist?
>
> Natürlich kann ich einen einfachen Workaround machen, um Weblate
> zufrieden zu stellen.
>
>      print(_('Trying to keep min {perc} free
> inodes').format(perc=f'{minFreeInodes}%'))
>
> Abgesehen von Weblate, ist die Frage hier eigentlich nur, ob ich ein %
> escapen muss, wenn ich die moderne Form von Format-Strings mit den
> geschweiften Klammern nutze?
>
> Schöne Grüße
> Christian
> _______________________________________________
> python-de Mailingliste -- [email protected]
> Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an
> [email protected]
> https://mail.python.org/mailman3/lists/python-de.python.org/
> Mitgliedsadresse: [email protected]
>
_______________________________________________
python-de Mailingliste -- [email protected]
Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an [email protected]
https://mail.python.org/mailman3/lists/python-de.python.org/
Mitgliedsadresse: [email protected]