444 Stimmen

Wie kann ich selektiv Prozent (%) in Python-Zeichenfolgen entschlüsseln?

Ich habe den folgenden Code

test = "have it break."
selectiveEscape = "Print percent % in sentence and not %s" % test

print(selectiveEscape)

Ich würde gerne die Ausgabe erhalten:

Print percent % in sentence and not have it break.

Was tatsächlich passiert:

    selectiveEscape = "Use percent % in sentence and not %s" % test
TypeError: %d format: a number is required, not str

736voto

Nolen Royalty Punkte 18147
>>> test = "have it break."
>>> selectiveEscape = "Print percent %% in sentence and not %s" % test
>>> print selectiveEscape
Print percent % in sentence and not have it break.

62voto

Karmel Punkte 3422

Alternativ dazu können Sie ab Python 2.6 die neue String-Formatierung (beschrieben in PEP 3101 ):

'Print percent % in sentence and not {0}'.format(test)

was besonders praktisch ist, wenn Ihre Strings komplizierter werden.

49voto

openmeet123 Punkte 509

Versuchen Sie es mit %% um das %-Zeichen zu drucken.

10voto

Anthon Punkte 58254

Sie können nicht selektiv entkommen % als % hat immer eine besondere Bedeutung, die von dem folgenden Zeichen abhängt.

In der Dokumentation von Python, am Ende der zweiten Tabelle in diesem Abschnitt, heißt es:

'%'        No argument is converted, results in a '%' character in the result.

Daher sollten Sie verwenden:

selectiveEscape = "Print percent %% in sentence and not %s" % (test, )

(bitte beachten Sie die explizite Änderung in Tupel als Argument für % )

Ohne die oben genannten Informationen hätte ich das getan:

selectiveEscape = "Print percent %s in sentence and not %s" % ('%', test)

mit dem Wissen, das Sie offensichtlich bereits hatten.

6voto

Jaroslav Bezděk Punkte 6369

Wenn Sie Folgendes verwenden Python 3.6 oder neuer, können Sie f-Zeichenkette :

>>> test = "have it break."
>>> selectiveEscape = f"Print percent % in sentence and not {test}"
>>> print(selectiveEscape)
... Print percent % in sentence and not have it break.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X