是否可以在python中声明一个带字符串值和占位符的变量?

时间:2017-05-23 07:41:11

标签: python python-3.x

我正在尝试将一个长字符串值初始化为一个变量,但是这个字符串有一个不能是常量的单词,就像这个例子一样。

说我想要存储这样的字符串。

str = "https://stackoverflow.com/users/7833397/meskerem" 

但是假设数字7833397会随着时间的推移而改变,所以我试图找到一种方法来存储字符串,同时为数字制作通配符。但我不确定这是否可以在Python中完成

3 个答案:

答案 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))

New style

“新”样式使用通用{},可以使用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,)