我正在尝试将一个长字符串值初始化为一个变量,但是这个字符串有一个不能是常量的单词,就像这个例子一样。
说我想要存储这样的字符串。
str = "https://stackoverflow.com/users/7833397/meskerem"
但是假设数字7833397会随着时间的推移而改变,所以我试图找到一种方法来存储字符串,同时为数字制作通配符。但我不确定这是否可以在Python中完成
答案 0 :(得分:6)
使用format
方法。
template = "https://stackoverflow.com/users/{0}/meskerem"
# Lots of stuff happens here
url = template.format("7833397")
format
方法支持自己的小型语言,根据您的使用情况,您可能会发现更直观地命名模板的各个部分:
template = "https://stackoverflow.com/users/{id}/{username}"
# Lots of stuff happens here
url = template.format(id="7833397", username="meskerem")
答案 1 :(得分:5)
首先,避免使用标识符str
。其次,您可以使用两种字符串格式化方法将占位符放在字符串中:
“旧”样式使用C风格的字符串格式化语法,并对字符串执行“模数”操作以进行实际插入。您可以将多个替换作为元组传递:
s = "foo%sbaz" # expects a string
print(s%"bar")
s2 = "foo%s%d"
print(s2%("bar", 2))
“新”样式使用通用{}
,可以使用str.format()
方法填充。多个替换作为解压缩的元组传递,即作为多个参数:
s = "foo{}baz" # can be "anything"
print(s.format("bar"))
s2 = "foo{}{}"
print(s2.format("bar", 2))
This site可能会派上用场。
答案 2 :(得分:0)
您可以使用'%s'(字符串格式化语法)
modified_str = "https://stackoverflow.com/users/%s/meskerem" % (number,)