我想知道如何使用f字符串以Pythonic方式格式化这种情况:
names = ['Adam', 'Bob', 'Cyril']
text = f"Winners are:\n{'\n'.join(names)}"
print(text)
问题是'\'
不能在{...}
f字符串的html" target="_blank">表达式部分内使用。预期产量:
Winners are:
Adam
Bob
Cyril
你不能 反斜杠不能出现在花括号内{}
;这样做会导致SyntaxError
:
>>> f'{\}'
SyntaxError: f-string expression part cannot include a backslash
这是在PEP中为f字符串指定的:
反斜线可能不会出现在f字符串的表达式部分内,[…]
一种选择是先'\n'
命名,然后再.join
在f
-string内进行命名;也就是说,不使用文字:
names = ['Adam', 'Bob', 'Cyril']
nl = '\n'
text = f"Winners are:{nl}{nl.join(names)}"
print(text)
结果是:
Winners are:
Adam
Bob
Cyril
@wim指定的另一个选项是chr(10)
用来获取\n
返回值,然后在此加入。f"Winners are:\n{chr(10).join(names)}"
当然,还有另一个是要'\n'.join
预先添加相应的名称:
n = "\n".join(names)
text = f"Winners are:\n{n}"
结果相同。
这是f
-string和之间的细微差别之一str.format
。在后者中,您可以始终使用标点符号,只要打开包含这些键的相应古怪字典即可:
>>> "{\\} {*}".format(**{"\\": 'Hello', "*": 'World!'})
"Hello World!"
(请不要这样做。)
在前一种格式中,标点符号是不允许的,因为您不能使用它们的标识符。
撇开:我肯定会选择print
或format
,因为其他答案都建议您选择。我提供的选项仅在由于某些原因 必须 使用f字符串的情况下适用。
仅仅因为有些新事物,并不意味着您应该尝试用它做一切;-)
在我的java课上,我们写了一个卡片程序,在这个程序中,你可以选择一张“秘密卡片”,最后它会告诉你你的秘密卡片是什么。我只有一个问题,那就是格式化输出。到现在为止,当它打印第一列时,第一列是偶数,但第二列和第三列不是。我的老师说要使用空格,但我试过了,不起作用。我知道有一种方法可以格式化它,但我不确定。输出看起来像这样: 我的输出代码如下: 如果你愿意,我可以发布整个代码,但我尽量不发布太多。我非
问题内容: 我是Java新手,来自Python。在Python中,我们执行以下字符串格式设置: 如何在Java中复制相同的内容? 问题答案: 该课程看起来像您所追求的。
问题内容: 我是Java新手,来自Python。在Python中,我们执行以下字符串格式设置: 如何在Java中复制相同的内容? 问题答案: 该课程看起来像您所追求的。
问题内容: 我正在阅读有关python的新f字符串的 博客 ,它们看起来很整洁。但是,我希望能够从字符串或文件中加载f字符串。 我似乎找不到任何执行此操作的字符串方法或其他函数。 从上面我的链接中的示例: 但是,如果我有琴弦怎么办?我希望能够像这样: 事实证明,我已经可以执行类似的操作并获得性能提高。即: 问题答案: f字符串是代码。不仅以安全的方式(当然,字符串文字就是代码),而且以危险的任意代
问题内容: 我正在尝试格式化字符串,以便所有内容在两者之间对齐。 我正在尝试这样做: 我如何获得要排队的列?我看了文档但是很困惑。我当时以为它将使它成为30个空格,然后它将打印下一个项目,但是似乎从上一个项目结束处开始有30个空格。 谢谢 问题答案: 使您的字段在可用空间内保持对齐。使用对齐方式说明符更改对齐方式: 强制字段在可用空间内左对齐(这是大多数对象的默认设置)。 强制字段在可用空间内右对
问题内容: 我正在学习将我的应用本地化为简体中文。我正在按照本教程进行操作。 因为本教程基于Obj-C,所以格式化后的字符串可以这样写: “你喜欢?” =“〜Es bueno?〜”; 但是我正在使用Swift。而且在Swift中,我认为您不能用来表示在那里放置了一些东西。我们有字符串插值对吗? 我的应用与数学有关。我想在表格视图单元格的详细标签中显示哪些输入用于计算结果。例如 此处的意思是“根据x