2

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

number = 1
print "hello number " + number

你必须这样做:

print "hello number " + str(number)

否则你会得到一个错误。

那么,我的问题是,作为 python 如此紧凑的语言,以及在许多其他语言中可用的从整数到字符串的自动转换/转换功能,是否避免str()每次都必须使用该功能?一些晦涩的导入,或者只是另一种方法?

编辑:当我说另一种方式时,我的意思是更简单更紧凑的编写方式。因此,例如,我不会真正考虑format替代方案。

谢谢。

4

4 回答 4

4

你可以避免str()

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

反正,

'abc' + 123

相当于

'abc'.__add__(123)

__add__strings的方法只接受字符串。

就像

123 + 'abc'

相当于

(123).__add__('abc')

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

于 2013-03-12T15:17:15.050 回答
4

您可以使用旧的字符串格式:

print "hello number %s" % number

新的

print "hello number {}".format(number)
于 2013-03-12T15:18:00.980 回答
2

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

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

或者,在 python 3 中,

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

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

于 2013-03-12T17:20:16.040 回答
1

正如这个答案所解释的,这在 Python 中不会发生,因为它是强类型的。这意味着 Python 不会转换您没有明确表示要转换的类型。

于 2013-03-12T15:19:14.313 回答