我想使用f字符串格式而不是打印。但是,我得到了这些错误:f字符串中的表达式未终止;缺少右括号Expected ')'
var="ab-c" f"{var.replace("-","")}text123"
字符串我尝试使用单引号f“和双括号,但它们都不起作用。如何解决这个问题?
5us2dqdw1#
Python 3.12之前:
对于f"{var.replace("-","")}text123",Python将f"{var.replace("解析为一个完整的字符串,你可以看到它有一个开头的{和一个开头的(,但随后字符串被终止。它首先期望一个),最终期望一个},因此你看到的错误。为了解决这个问题,Python允许'或"封装一个字符串,所以一个用于f字符串,另一个用于字符串内部:
f"{var.replace("-","")}text123"
f"{var.replace("
{
(
)
}
'
"
f"{var.replace('-','')}text123"
字符串或:
f'{var.replace("-","")}text123'
型如果内部同时有'和",也可以使用三重引号
f'''{var.replace("-",'')}text123'''
型或:
f"""{var.replace("-",'')}text123"""
型
从Python 3.12开始:
一些f字符串限制已经被取消,OP的原始代码现在可以工作了:
Python 3.12.0 (tags/v3.12.0:0fb18b0, Oct 2 2023, 13:03:39) [MSC v.1935 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> var="ab-c" >>> f"{var.replace("-","")}text123" 'abctext123'
型参见Python 3.12中的新增功能,PEP 701:f字符串的语法形式化。
7gcisfzg2#
使用单引号:
var="ab-c" f'{var.replace("-","")}text123' # display abctext123
字符串
cxfofazt3#
var = "ab-c" f"{var.replace('-','')}text123"
字符串始终使用不同于f字符串中的引号字符
3条答案
按热度按时间5us2dqdw1#
Python 3.12之前:
对于
f"{var.replace("-","")}text123"
,Python将f"{var.replace("
解析为一个完整的字符串,你可以看到它有一个开头的{
和一个开头的(
,但随后字符串被终止。它首先期望一个)
,最终期望一个}
,因此你看到的错误。为了解决这个问题,Python允许
'
或"
封装一个字符串,所以一个用于f字符串,另一个用于字符串内部:字符串
或:
型
如果内部同时有
'
和"
,也可以使用三重引号型
或:
型
从Python 3.12开始:
一些f字符串限制已经被取消,OP的原始代码现在可以工作了:
型
参见Python 3.12中的新增功能,PEP 701:f字符串的语法形式化。
7gcisfzg2#
使用单引号:
字符串
cxfofazt3#
字符串
始终使用不同于f字符串中的引号字符