如何在Python f-string中直接替换变量内的单引号?
解决Python f-string中直接替换变量单引号的语法错误问题
你的错误根源是字符串引号冲突:外层用双引号包裹f-string,内部replace方法的参数又用双引号,Python会误将第一个内层双引号识别为f-string的结束标记,从而抛出「EOL while scanning string literal」错误。
以下是两种最简洁的解决方法,无需额外变量或正则:
方法1:转义内层双引号
在replace的双引号前加反斜杠\,明确告诉Python这是字符串内部的引号,不是结束标记:
var1 = "foo" var2 = "bar '" print(f"{var1}-{var2.replace(\"'\", \"\")}")
方法2:改用单引号包裹整个f-string
这样内层replace的双引号就不会和外层冲突,代码可读性更高:
var1 = "foo" var2 = "bar '" print(f'{var1}-{var2.replace("'", "")}')
两种方法执行后都会输出:foo-bar
内容的提问来源于stack exchange,提问作者JVGBI
相关产品推荐
相关产品推荐

