连接时如何避免将整数转换为字符串

时间:2013-03-12 15:16:11

标签: python

我知道在python中,你不能简单地这样做:

number = 1
print "hello number " + number

你必须这样做:

print "hello number " + str(number)

否则你会收到错误。

我的问题是,是python这样一种紧凑的语言,这种自动转换/从整数转换为字符串的功能在许多其他语言中都可用,不是为了避免使用每次str()功能?一些模糊的导入,或者只是另一种方式吗?

编辑:当我说另一种方式时,我的意思是更简洁,更简洁的方式来编写它。所以,我不会真的考虑format和替代例如。

感谢。

4 个答案:

答案 0 :(得分:4)

您可以避免str()

print 'hello number {}'.format(number)

反正

'abc' + 123

相当于

'abc'.__add__(123)

并且__add__字符串方法只接受字符串。

就像

一样
123 + 'abc'

相当于

(123).__add__('abc')

并且__add__整数方法只接受数字(int / float)。

答案 1 :(得分:4)

您可以使用字符串格式old

print "hello number %s" % number

new

print "hello number {}".format(number)

答案 2 :(得分:2)

我倾向于使用更紧凑的格式

>>> print "one",1,"two",2
one 1 two 2

或者,在python 3中,

>>> print("one",1,"two",2)
one 1 two 2

请注意,这两个选项总是会在每个参数之间引入一个空格,这使得它不适合更复杂的输出格式,您应该使用其中一些其他解决方案。

答案 3 :(得分:1)

正如this回答所解释的那样,这不会发生在Python中,因为它是强类型的。这意味着Python不会转换您没有明确说明要转换的类型。