我有 C# 背景,我这样做:
Console.Write("some text" + integerValue);
因此整数会自动转换为字符串并输出。
在 python 中,当我这样做时出现错误:
print 'hello' + 10
我每次都必须转换成字符串吗?
我如何在 python 中执行此操作?
String.Format("www.someurl.com/{0}/blah.html", 100);
我开始喜欢上python了,感谢大家的帮助!
最佳答案
从 Python 2.6 开始:
>>> "www.someurl.com/{0}/blah.html".format(100)
'www.someurl.com/100/blah.html'
为了支持较旧的环境,%
运算符具有类似的作用:
>>> "www.someurl.com/%d/blah.html" % 100
'www.someurl.com/100/blah.html'
如果你想支持命名参数,那么你可以传递一个dict
。
>>> url_args = {'num' : 100 }
>>> "www.someurl.com/%(num)d/blah.html" % url_args
'www.someurl.com/100/blah.html'
一般情况下,当需要混合类型时,我推荐字符串格式化:
>>> '%d: %s' % (1, 'string formatting',)
'1: string formatting'
字符串格式化通过使用它们的 __str__
方法将对象强制转换为字符串。[*] 在 docs 中有更多关于 Python 字符串格式化的详细文档。 .此行为在 Python 3+ 中有所不同,因为所有字符串都是 unicode。
如果您有一个字符串列表或元组,join
方法会非常方便。它在可迭代对象的所有元素之间应用分隔符。
>>> ' '.join(['2:', 'list', 'of', 'strings'])
'2: list of strings'
如果您所处的环境需要支持遗留环境(例如 Python <2.5),您通常应该避免字符串连接。请参阅评论中引用的文章。
[*] Unicode 字符串使用__unicode__
方法。
>>> u'3: %s' % ':)'
u'3: :)'
关于python - 字符串格式问题以及将字符串与数字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3380029/