我知道在python中,你不能简单地这样做:
number = 1
print "hello number " + number
你必须这样做:
print "hello number " + str(number)
否则你会收到错误。
我的问题是,是python这样一种紧凑的语言,这种自动转换/从整数转换为字符串的功能在许多其他语言中都可用,不是为了避免使用每次str()
功能?一些模糊的导入,或者只是另一种方式吗?
编辑:当我说另一种方式时,我的意思是更简洁,更简洁的方式来编写它。所以,我不会真的考虑format
和替代例如。
感谢。
答案 0 :(得分:4)
您可以避免str()
:
print 'hello number {}'.format(number)
反正
'abc' + 123
相当于
'abc'.__add__(123)
并且__add__
字符串方法只接受字符串。
就像
一样123 + 'abc'
相当于
(123).__add__('abc')
并且__add__
整数方法只接受数字(int / float)。
答案 1 :(得分:4)
答案 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不会转换您没有明确说明要转换的类型。