我想将 f-string 与我的字符串变量一起使用,而不是与用字符串文字 "..."
定义的字符串一起使用。
这是我的代码:
name=["deep","mahesh","nirbhay"]
user_input = r"certi_{element}" # this string I ask from user
for element in name:
print(f"{user_input}")
此代码给出输出:
certi_{element}
certi_{element}
certi_{element}
但我想要:
certi_{deep}
certi_{mahesh}
certi_{nirbhay}
我怎样才能做到这一点?
原文由 Deep Ghodasara 发布,翻译遵循 CC BY-SA 4.0 许可协议
f"..."
将表达式结果插入 文字 时,字符串很棒,但是您没有文字,您在单独的变量中有一个模板字符串。您可以使用
str.format()
将值应用于该模板:使用名称(例如
{element}
)的字符串格式化占位符不是 _变量_。您为str.format()
调用的关键字参数中的每个名称分配一个值。在上面的例子中,element=value
传入value
变量的值,用element
填充占位符。与
f
字符串不同,{...}
占位符 不是 表达式,您不能在模板中使用任意 Python 表达式。这是一件好事,您不希望最终用户能够在您的程序中执行任意 Python 代码。有关详细信息,请参阅 格式字符串语法 文档。您可以传入任意数量的名称;字符串模板 不必 使用它们中的任何一个。如果将
str.format()
与**mapping
调用约定结合使用,则可以使用任何字典作为值的来源:以上将允许用户在他们的模板中使用
template_values
中的任何名称,任意次数。虽然您可以使用
locals()
和globals()
生成将变量名称映射到值的字典,但我不推荐这种方法。使用像上面这样的专用命名空间来限制可用的名称,并为您的最终用户记录这些名称。