Tekenreeks en geheel getal samenvoegen in python

In python zeg je dat je hebt

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

geeft u een foutmelding
dus je schrijft

print s+str(i) 

om geen foutmelding te krijgen.

Ik denk dat dit nogal een onhandige manier is om int en string aaneenschakeling te verwerken.
Zelfs Java heeft geen expliciete casting naar String nodig om dit te doen
van aaneenschakeling.
Is er een betere manier om dit soort aaneenschakeling te doen, d.w.z. zonder expliciet casten in Python?


Antwoord 1, autoriteit 100%

Moderne tekenreeksopmaak:

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

Antwoord 2, autoriteit 48%

Geen tekenreeksopmaak:

>> print 'Foo',0
Foo 0

Antwoord 3, autoriteit 19%

String-opmaak, met behulp van de nieuwe-stijl .format()-methode (met de standaardwaarden .format()biedt):

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

Of de oudere, maar “plakt nog steeds”, %-formattering:

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

In beide bovenstaande voorbeelden is er geenspatie tussen de twee aaneengeschakelde items. Als er ruimte nodig is, kan deze eenvoudig worden toegevoegd in de opmaakreeksen.

Deze bieden veelcontrole en flexibiliteit over het samenvoegen van items, de ruimte ertussen enz. Voor details over formaatspecificaties zie dit.


Antwoord 4, autoriteit 9%

Python is een interessante taal, hoewel er meestal een (of twee) “voor de hand liggende” manieren zijn om een bepaalde taak uit te voeren, er toch flexibiliteit bestaat.

s = "string"
i = 0
print (s + repr(i))

Het bovenstaande codefragment is geschreven in de Python3-syntaxis, maar de haakjes na het afdrukken waren altijd toegestaan (optioneel) totdat versie 3 ze verplicht maakte.

Hopelijk helpt dit.

Caitlin


Antwoord 5, autoriteit 3%

format() methode kan worden gebruikt om string en integer samen te voegen

print(s+"{}".format(i))

Antwoord 6

in python 3.6 en nieuwer kun je het als volgt formatteren:

new_string = f'{s} {i}'
print(new_string)

of gewoon:

print(f'{s} {i}')

Antwoord 7

als u alleen wilt afdrukken, kunt u dit doen:

print(s , i)

Antwoord 8

Laten we aannemen dat u string en integer wilt samenvoegen in een situatie als deze:

for i in range(1,11):
   string="string"+i 

en u krijgt een type- of aaneenschakelingsfout

De beste manier om dit te doen is door zoiets als dit te doen:

for i in range(1,11):
   print("string",i)    

Dit geeft je aaneengeschakelde resultaten zoals string 1, string 2, string 3 …etc

Other episodes