代码之家  ›  专栏  ›  技术社区  ›  user1187968

Python:三重双引号字符串格式

  •  4
  • user1187968  · 技术社区  · 7 年前

    键错误:“a” 进程已完成,退出代码为1

    s = """
    a b c {a}
    """.format({'a':'123'})
    
    print s
    
    3 回复  |  直到 7 年前
        1
  •  6
  •   MSeifert    7 年前

    您需要按名称传递参数 .format(a=123) 或使用 format_map 这需要一本字典:

    s = """
    a b c {a}
    """.format_map({'a':'123'})
    
        2
  •  3
  •   MSeifert    7 年前

    命名格式变量必须按名称传递:

    >>> s = """
    ... a b c {a}
    ... """.format(a=123)
    >>> print(s)
    
    a b c 123
    

    如果您提供的是数据目录,您可以“解包”名称:

    >>> d = {'a': 123}
    >>> s = """
    ... a b c {a}
    ... """.format(**d)
    >>> print(s)
    
    a b c 123
    
        3
  •  1
  •   Asad Moosvi    7 年前

    format 字符串的方法不正确。 当要在字符串中替换名称时,需要传入关键字参数。

    在您的案例中使用该方法的正确形式如下:

    s = """
    a b c {a}
    """.format(a='123')
    
    print s
    

    但是,如果您确实想传入字典,那么可以通过在前面加前缀将其解包为关键字参数 ** a='123' 就像上面的代码一样。

    请阅读有关Python字符串和字符串格式方法的更多信息 here .