如何在连接时避免将整数转换为字符串
我知道在Python中,你不能简单地这样做:
number = 1
print "hello number " + number
你必须这样做:
print "hello number " + str(number)
否则你会遇到错误。
我的问题是,Python作为一种简洁的语言,很多其他语言都有自动把整数转换成字符串的功能,难道就没有办法避免每次都使用str()
这个函数吗?有没有什么不太常见的导入,或者其他简单的方法呢?
编辑:当我说另一种方式时,我是指更简单、更紧凑的写法。所以,我并不认为format
是一个替代方案。
谢谢。
4 个回答
4
你可以不使用 str()
:
print 'hello number {}'.format(number)
无论如何,
'abc' + 123
等同于
'abc'.__add__(123)
而且字符串的 __add__
方法只接受字符串。
就像
123 + 'abc'
等同于
(123).__add__('abc')
而整数的 __add__
方法只接受数字(整数/浮点数)。
2
我通常喜欢用更简洁的格式
>>> print "one",1,"two",2
one 1 two 2
或者,在 Python 3 中,
>>> print("one",1,"two",2)
one 1 two 2
不过要注意,这两种方式在每个参数之间总是会加一个空格,这样就不太适合用来做更复杂的输出格式。如果你需要更复杂的格式,可以考虑其他一些解决方案。