简体   繁体   中英

Print string and integer in python

I always wonder why in Python that is supposed to be easy and fast for developing and you don't even specify types, you must cast an integer to string if you want to print it? It is really annoying.

print "some string"+some_int

gives TypeError: cannot concatenate 'str' and 'int' objects

print "some string"+str(some_int)

Is okay.

1) Because there is not a clear, unambiguous meaning of str+int . Consider:

x = "5" + 7

Should the + str-ify the 7 or int-ify the "5"? One way yields 12 , the other yields "57" .

2) Because there are other alternatives that more clearly express the programmer's intent:

print "5", 7
print "5%d" % 7
print "5{:d}".format(7)

each of these have a clear meaning, and none of them represent an onerous burden to the programmer.

Aside : I would never use "some string"+str(some_int) . String concatenation is a limited case of the more general, easier to use string formatting facilities I listed above.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM