-1

也许模式替换不是正确的词,但我不知道还能怎么称呼它。我想取一个字符串,比如“嗨,我的名字是名字,我今年几岁”或其他什么,并务实地填写这些值。最好的方法是什么(再次,在 python 中)

4

4 回答 4

3

你想要字符串格式

你从这样的字符串开始:

s = 'Hi my name is {name} and I am {age} years old'

现在,当您需要时,您可以使用str.format“填写值”的方法。

>>> s.format(name='John', age=42)
Hi my name is John and I am 42 years old

这样做是用{}给定的材料替换大括号 () 中的内容。

请注意,此方法优于使用%运算符进行格式化,并且是 Python 3 中的标准。

于 2013-03-12T06:16:39.540 回答
2

试试这个:

name, age = 'Art', 20

myStr = "hi my name is {0} and I am a {1} years old" 

print myStr.format(name, age)

或者:

myStr = "hi my name is %(name)s and I am a %(age)i years old" 
print myStr % {'name': name, 'age': age}

或者:

myStr = "hi my name is %s and I am a %i years old" 
print myStr % (name, age)

阅读有关 python 文档中字符串格式的更多信息。

于 2013-03-12T06:16:06.983 回答
0

你可以看看 python re http://docs.python.org/2/library/re.html

>>> import re
>>> thing = "hi my name is placeholder"
>>> thing = re.sub("placeholder", "Fred", thing)
>>> thing
"hi my name is Fred"
于 2013-03-12T06:18:50.283 回答
0

以上所有答案都是有效的。现在我提供了一个使用字符串 Template的方法。

from string import Template
s = Template("hi my name is ${name} and I am ${age} years old")
s.substitute(name='Bill', age=24)
# 'hi my name is Bill and I am 24 years old'

您可能想使用相关方法safe_substitute ,并在此处找到更多信息。

于 2013-03-12T06:36:53.587 回答