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

2 投票
4 回答
560 浏览
提问于 2025-04-17 18:48

我知道在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__ 方法只接受数字(整数/浮点数)。

4

你可以使用字符串格式化,下面是旧版的写法:

print "hello number %s" % number

或者使用新版的写法:

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

我通常喜欢用更简洁的格式

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

或者,在 Python 3 中,

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

不过要注意,这两种方式在每个参数之间总是会加一个空格,这样就不太适合用来做更复杂的输出格式。如果你需要更复杂的格式,可以考虑其他一些解决方案。

撰写回答