In python say you have
s = "string"
i = 0
print s+i
will give you error
so you write
print s+str(i)
to not get error.
I think this is quite a clumsy way to handle int and string concatenation.
Even Java does not need explicit casting to String to do this sort
of concatenation.
Is there a better way to do this sort of concatenation i.e without explicit casting in Python?
Modern string formatting:
"{} and {}".format("string", 1)
String formatting, using the new-style .format()
method (with the defaults .format() provides):
'{}{}'.format(s, i)
Or the older, but "still sticking around", %
-formatting:
'%s%d' %(s, i)
In both examples above there's no space between the two items concatenated. If space is needed, it can simply be added in the format strings.
These provide a lot of control and flexibility about how to concatenate items, the space between them etc. For details about format specifications see this.
Python is an interesting language in that while there is usually one (or two) "obvious" ways to accomplish any given task, flexibility still exists.
s = "string"
i = 0
print (s + repr(i))
The above code snippet is written in Python3 syntax but the parentheses after print were always allowed (optional) until version 3 made them mandatory.
Hope this helps.
Caitlin
format() method can be used to concatenate string and integer
print(s+"{}".format(i))