如何将 f-string 与变量一起使用,而不是与字符串文字一起使用?

2023-12-11

我想将 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}

我怎样才能做到这一点?


f"..."将表达式结果插入到一个表达式中时,字符串非常有用literal,但你没有文字,你有一个单独的变量中的模板字符串。

您可以使用str.format()将值应用于该模板:

name=["deep","mahesh","nirbhay"]
user_input = "certi_{element}" # this string i ask from user  

for value in name:
    print(user_input.format(element=value))

使用名称的字符串格式化占位符(例如{element}) 不是变量。您可以为关键字参数中的每个名称分配一个值str.format()打电话代替。在上面的例子中,element=value传入的值value变量来填充占位符element.

Unlike f- 字符串,{...}占位符是not表达式,并且您不能在模板中使用任意 Python 表达式。这是一件好事,您不会希望最终用户能够在您的程序中执行任意 Python 代码。请参阅格式化字符串语法文档了解详情。

您可以传入任意数量的名称;字符串模板没有have使用其中任何一个。如果你结合str.format()**mapping调用约定,您可以使用任何字典作为值的来源:

template_values = {
    'name': 'Ford Prefect',
    'number': 42,
    'company': 'Sirius Cybernetics Corporation',
    'element': 'Improbability Drive',
}

print(user_input.format(**template_values)

上面将允许用户使用中的任何名称template_values在他们的模板中,他们喜欢任意次数。

虽然您可以使用locals() and globals()要生成将变量名称映射到值的字典,我不推荐这种方法。使用如上所述的专用命名空间来限制可用的名称,并为最终用户记录这些名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 f-string 与变量一起使用,而不是与字符串文字一起使用? 的相关文章

随机推荐

  • Q3DScatter --> 如何将不同颜色的点添加到点云中

    我在 Qt 中编写了一个程序 它使用 Q3DScatter 可视化处理后的点云 3D 点 现在我想添加具有不同颜色的计算关键点 那可能吗 有哪位男孩有这方面的经验吗 下面您可以看到代码部分 其中点云被添加到数据数组中 QScatterDat
  • 禁用元素的 NumericUpDown 背景颜色更改

    在我的 winform 应用程序上 我尝试对所需字段进行颜色编码 在用户编辑时 当必填字段被填写时 背景变为浅绿色 如果必填字段为空 则背景为红色 某些字段的启用和禁用取决于其他字段中的输入 因此有时我需要禁用字段 并且应该完全禁用该字段
  • 我如何使用 BoxLayout 来做到这一点?

    我已经完美地设置了菜单 中心框 但我不知道如何放置标签 目前发生的情况是标签位于菜单选项下方 并且菜单选项被推到右侧 Here is what I want to happen And here is what is happening 目
  • 为什么使用多列作为主键(复合主键)

    这个例子是采取来自 w3schools CREATE TABLE Persons P Id int NOT NULL LastName varchar 255 NOT NULL FirstName varchar 255 Address v
  • UWP - 未找到 PhoneLine 类 [重复]

    这个问题在这里已经有答案了 我正在尝试通过我的应用程序拨打电话 我应该使用PhoneLine来自命名空间Windows ApplicationModel Calls But PhoneLine不在Windows ApplicationMod
  • Java 枚举 - 自定义名称

    我想要一个值为整数的 Java 枚举 例如 public enum TaskStatus TaskCreated 1 TaskDeleted 2 但我也想要这两个常量的自定义名称 例如例如 任务已创建 和 任务已删除 其中有空格 我想尽可能
  • jQuery 中 :hidden 和 :not(:visible) 之间的区别

    我知道两个 jQuery 选择器都匹配不可见的元素 width or height等于0 display none 父级与display none 我相信这意味着它们应该产生相同的结果the docs 出于可读性的原因 我宁愿使用 hidd
  • 在spark 1.6中将csv读取为数据框

    我有 Spark 1 6 并尝试读取 csv 或 tsv 文件作为数据帧 以下是我采取的步骤 scala gt val sqlContext new org apache spark sql SQLContext sc scala gt i
  • 在没有幂函数的for循环中计算小数指数

    我在这方面的数学有点不稳定 有谁知道如何使用 和 for 循环之外的数学函数来计算 10 2 2 这样的幂 我无权访问数学库 并且无法导入 包含它 但需要计算这些东西 嗯 也许我应该看看数学库是如何做到的 您可以仅使用带有泰勒 或麦克劳林
  • 警告:openssl_pkcs7_sign():使用 WAMP 获取私钥时出错

    我尝试使用 TCPDF 签署 PDF 但出现此错误 Warning openssl pkcs7 sign error getting private key in C wamp www tcpdf tcpdf php on line 759
  • 快速简单:trayicon 与 python?

    我只需要一个关于如何轻松地将 python 图标放在系统托盘上的快速示例 这意味着 我运行程序 没有显示窗口 只有一个托盘图标 我有一个 png 文件 显示在系统托盘中 当我右键单击它时 会出现一个带有一些选项的菜单 当我单击在一个选项上
  • SQL Server Compact 4 中两个 INNER JOINed 表的更新

    我正在尝试更新 sql server Compact Edition 4 0 中两个表之间的值 我的sql如下 UPDATE ei SET ei EstateID e EstateID FROM EstateImages ei INNER
  • 从 Github 克隆问题

    当我尝试从 git 克隆或拉取时 我收到了这个奇怪的错误消息 奇怪的是 我和一位同事以前对此没有任何问题 然后 我们让另外两名团队成员克隆了存储库 现在突然我和以前的同事继续收到这些错误 这两个新人在拉 推和克隆方面没有任何问题 突然两个原
  • EPL2 Zebra 打印机的图像 (PCX)

    我在生成图形并将其上传到 EPL2 打印机时遇到问题 在厌倦了任何可用的软件并在互联网上搜寻之后 我感到不知所措 我有一个 1 位文件 我尝试使用以下脚本上传它 设置ppi txt GK NAMEPCX GK NAMEPCX GM NAME
  • extJS:读取嵌套的 JSON

    我有一个来自 ldap search 调用的漂亮嵌套 JSON 我想使用这些信息来填充 ExtJS ComboBox 但我在读者方面遇到了一些麻烦 显然 我无法在组合框中读取我需要的信息 即人员的邮件地址 uid 和 cn 我认为整个问题都
  • Tensorflow 中的 Triplet、Siamese 和 Softmax

    我想比较以下类型的 CNN 对于两个不同的大型图像数据集的性能 目标是测量两个图像之间的相似度 这两个图像在训练期间都没有见过 我可以使用 2 个 GPU 和 16 个 CPU 核心 Triplet CNN 输入 三张图像 标签 编码到位
  • 如何使用 JavaScript 获取本地 IP 地址? [复制]

    这个问题在这里已经有答案了 我想获取客户端系统的本地IP地址 我如何使用 JavaScript 来实现这一点 我认为如果没有一些服务器交互就无法做到这一点 最简单的方法是向服务器端片段发出 AJAX 请求 在 PHP 中 该片段如下所示
  • 将参数传递给上传器/从上传器内部访问模型的属性/让用户选择缩略图大小

    我想将图像裁剪为用户从列表中选择的尺寸 例如 100x100px 200x200px 我如何将该属性传递给上传者或从上传者中获取模型的属性 从上传器内部访问模型的属性如下不起作用 version thumb do thumbnail siz
  • AccessDeniedHandler 重定向到登录页面

    当 在 Spring Security MVC 中 对页面的访问被拒绝时 由于用户没有足够的权限 尽管他已通过身份验证 我需要通过显示登录页面 而不是标准行为 提供以另一个用户身份登录显示 403 访问被拒绝页面 我可以写一个AccessD
  • 如何将 f-string 与变量一起使用,而不是与字符串文字一起使用?

    我想将 f string 与我的字符串变量一起使用 而不是与用字符串文字定义的字符串一起使用 这是我的代码 name deep mahesh nirbhay user input r certi element this string I