Wie verkette ich einen Booleschen Wert mit einem String in Python?

77

Ich möchte Folgendes erreichen

answer = True
myvar = "the answer is " + answer

und lassen Sie myvars Wert "die Antwort ist wahr" sein. Ich bin mir ziemlich sicher, dass Sie dies in Java tun können.

travis1097
quelle
fyi: Bools werden in Python (True, False)
Jordonias

Antworten:

15

Die empfohlene Methode besteht darin, str.formatdas Casting ( Dokumente ) durchführen zu lassen. Methoden mit %sSubstitution sind möglicherweise veraltet (siehe PEP3101 ).

>>> answer = True
>>> myvar = "the answer is {}".format(answer)
>>> print(myvar)
the answer is True

In Python 3.6+ können Sie die Literal-String-Interpolation verwenden :

 >>> print(f"the answer is {answer}")
the answer is True
wim
quelle
131
answer = True
myvar = "the answer is " + str(answer)

Python führt kein implizites Casting durch, da implizites Casting kritische Logikfehler maskieren kann. Geben Sie einfach eine Antwort auf eine Zeichenfolge selbst um, um deren Zeichenfolgendarstellung zu erhalten ("True"), oder verwenden Sie die Zeichenfolgenformatierung wie folgt:

myvar = "the answer is %s" % answer

Beachten Sie, dass die Antwort auf gesetzt sein muss True(Großschreibung ist wichtig).

Andrew Gorcester
quelle
7
answer = True
myvar = "the answer is " + str(answer)

oder

myvar = "the answer is %s" % answer
Squazic
quelle
Das %sÄußere von Zitaten sollte nicht vorhanden sein, aber das ist in der Tat richtig.
Makoto
3

Verwendung der sogenannten f-Strings:

answer = True
myvar = f"the answer is {answer}"

Dann, wenn ich es tue

print(myvar)

Ich werde bekommen:

the answer is True

Ich mag f-Zeichenfolgen, weil man sich keine Gedanken über die Reihenfolge machen muss, in der die Variablen im gedruckten Text angezeigt werden. Dies ist hilfreich, wenn mehrere Variablen als Zeichenfolgen gedruckt werden sollen.

BCArg
quelle
0

Antwort = Richtig

myvar = 'die Antwort ist' + str (Antwort) # da die Antwortvariable im Booleschen Format vorliegt, müssen wir den Booleschen Wert in das Zeichenfolgenformat konvertieren, was mit diesem einfach möglich ist

drucken (myvar)

Lijin G. Varghese
quelle
1
Willkommen bei SO, Lijin G. Varghese! Von Nur-Code-Antworten wird hier abgeraten, da sie keinen Einblick in die Lösung des Problems geben. Bitte aktualisieren Sie Ihre Antwort mit einer Erklärung, wie Ihr Code das vorliegende Problem löst :)
Joel
-1

In der neuesten Version von Python (3.7.0) wurden F-Strings eingeführt.

Hinweis:

boolean = True
output = 'The answer is' + boolean

funktioniert nicht, da Boolesche Werte nicht mit Zeichenfolgen verknüpft werden können.

Mit einer F-Zeichenfolge können Sie eine Zeichenfolgenversion des Booleschen Werts erstellen und diese auf einmal mit der Ausgabezeichenfolge verknüpfen:

boolean = True
output = f'The answer is {boolean}'

Um f-Strings zu verwenden, setzen Sie die Variable (eines beliebigen Typs) in geschweifte Klammern {} und setzen Sie ein f vor den String (wie oben gezeigt).

Hinweis: Dies funktioniert auch mit Ganzzahlen und anderen Datentypen, die in die print()Funktion analysiert werden können.

Christian Loizou
quelle
-2
answer = “True”

myvars = “the answer is” + answer

print(myvars)

Das sollte Ihnen die Antwort geben, dass es einfach wahr ist, da Sie die Antwort mithilfe der Anführungszeichen als Zeichenfolge gespeichert haben

user13621326
quelle
Aber er hat die Antwort nicht als Zeichenfolge gespeichert. Es ist ein Boolescher Wert. Die Frage ist, wie ein dynamischer Boolescher Wert in seine Zeichenfolgendarstellung konvertiert wird.
Cstrutton