【问题标题】:Meaning of '{}+{}' [duplicate]'{}+{}' 的含义 [重复]
【发布时间】:2019-12-17 05:51:31
【问题描述】:

我是 Tkinter 的新手,我正在开发一个文本编辑器。我想在我的代码中实现查找文本功能,我最近遇到了一行我不太理解的代码。我想了解那行代码的作用。 这是代码行:

'{}+{}c'.format(start_pos, len(needle))

【问题讨论】:

  • 第一个{} 将被start_pos 替换。第二个将替换为len(needle)。这就像the format method 的所有其他用法一样。

标签: python tkinter


【解决方案1】:

它将创建一个新字符串,其中format() 的参数被放置在{} 的位置:

start_pos = 1
needle = [1, 2, 3]

print('{}+{}c'.format(start_pos, len(needle)))

输出:

1+3c

查找此类内容的最佳位置绝对是 Python 文档。

我会亲自使用 Google 搜索来搜索:

site:https://docs.python.org/ format

然后选择顶部链接并在页面上为format() 执行Ctrl+F

使用这种技术会将我们带到这里:https://docs.python.org/3/library/stdtypes.html#str.format

【讨论】:

    【解决方案2】:

    我会为你分解它。

    你有一个字符串,'{}+{}c'。 在 Tkinter 中,搜索单词时,通常会找到第一个字母和最后一个字母的位置。要找到单词最后一个字母的位置,您需要找到单词的长度,并将其添加到起始位置。

    例如,假设您有“你好”这个词。为简单起见,我们假设第一个字母“h”的位置是 1.0。

    但我们还需要知道最后一个字母“o”的位置。 为此,我们获取 'hello' 的长度,即 5 个字符,并将其添加到起始位置,即 1.0。

    1.0 + 5 个字符 (0.5) = 1.5

    所以,我们现在知道了最后一个字母的位置。 但是我们如何告诉 Tkinter 呢? 好吧,我们使用'+xc',其中x 是任意数字,c 表示字符。 在 'hello' 的情况下,'hello' 有 5 个字符长,所以我们会写成 '+5c'

    在您的示例中,代码使用 format()。格式是一种轻松使用字符串变量的方法。 您的代码采用 start_pos、第一个字母的位置和单词的长度 len(needle),并将其传递给 format()。

    然后用 start_pos 替换“{}”的第一个实例,用 len(needle) 替换第二个实例。 这就像写start_pos + '+' + len(needle) + 'c'

    【讨论】:

      【解决方案3】:

      格式将替换每个{}

      所以这里的代码是一样的:

      str(start_pos) + '+' + str(len(needle)) + 'c'
      

      【讨论】:

        【解决方案4】:

        String.format()

        它接受函数中的参数并将它们插入字符串的大括号内。

        所以:'{}+{}c'.format(start_pos, len(needle))

        start_poslen(needle) 这两个变量添加到字符串中,替换大括号。

        {start_pos}+{len(needle)}

        【讨论】:

          猜你喜欢
          • 2014-04-15
          • 2019-07-12
          • 1970-01-01
          • 2015-03-07
          • 2016-10-22
          • 2018-01-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多