python - 字符串格式问题以及将字符串与数字连接

标签 python formatting

我有 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/

相关文章:

c++ - 如何计算具有 n 位小数的 float

python - 如何在python中对两个不同格式的向量进行运算

java - 格式化 JPanel 内的 JButton

html - 如何在单行中使用列表标签

c# - CSV 解析包含双引号和逗号的字符串

Xcode 6.1.1 Swift 返回 "Optional("$1234.1 2")"带格式化程序

python - 类型错误 : descriptor 'date' for 'datetime.datetime' objects doesn't apply to a 'int' object

python - 检查 Pandas 数据框列中的重复值

python - eval 在做什么?

python - 使用 lxml 根据 xsd 类型查找元素