wake-up-neo.com

Verkettung von Zeichenfolge und Ganzzahl in Python

In Python sagen Sie haben

s = "string"
i = 0
print s+i

wird Ihnen errorso schreiben, dass Sie schreiben

print s+str(i) 

keinen Fehler bekommen.

Ich denke, dass dies eine ziemlich ungeschickte Art ist, mit Int- und String-Verkettung umzugehen. Selbst Java benötigt keine explizite Umwandlung in String, um diese Art von Konkurrenten auszuführen Verkettung dh ohne explizites Casting in Python?

110
specialscope

Moderne String-Formatierung:

"{} and {}".format("string", 1)
145
user647772

Keine String-Formatierung:

>> print 'Foo',0
Foo 0
79
Burhan Khalid

String-Formatierung mit der neuen .format()-Methode (mit den Standardeinstellungen .format () ):

 '{}{}'.format(s, i)

Oder das ältere, aber "immer noch", %- Formatierung:

 '%s%d' %(s, i)

In beiden obigen Beispielen ist no Leerzeichen zwischen den beiden Elementen verkettet. Wenn Platz benötigt wird, kann er einfach in den Formatstrings hinzugefügt werden.

Diese bieten ein lot an Kontrolle und Flexibilität hinsichtlich der Verkettung von Elementen, des Zwischenraums usw. Weitere Informationen zu Formatangaben finden Sie hier .

29
Levon

Python ist insofern eine interessante Sprache, als es normalerweise eine (oder zwei) "offensichtliche" Möglichkeiten gibt, eine gegebene Aufgabe zu erfüllen, Flexibilität jedoch immer noch besteht.

s = "string"
i = 0

print (s + repr(i))

Das obige Code-Snippet ist in Python3-Syntax geschrieben, die Klammern nach dem Druck waren jedoch immer zulässig (optional), bis sie in Version 3 obligatorisch waren.

Hoffe das hilft.

Caitlin

13
CaitlinG

die format () -Methode kann zur Verkettung von Zeichenfolge und Ganzzahl verwendet werden

print(s+"{}".format(i))
0
Aakash Wadhwa