You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python变量中存储HTML字符串?f-string报错解决

解决f-string多行字符串报错“字符串字面量未确定”的问题

你的问题出在用单行双引号定义多行f-string,Python会把换行符当成字符串的结束标记,导致语法错误。以下是几种可行的解决方法:

方法一:使用三引号的f-string(推荐)

Python支持用三引号("""或''')定义多行字符串,f-string完全兼容这种写法,既支持换行,又能正常解析变量插值,同时内部的双引号无需额外转义:

title = "我的网页标题"
txt = f"""<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{title}</title>
</head>
<body>
    
</body>
</html>"""

方法二:用反斜杠连接多行(不推荐,可读性差)

如果坚持用单行引号格式,可以在每行末尾加反斜杠,告诉Python字符串未结束:

title = "我的网页标题"
txt = f"<html lang=\"en\">"\
"<head>"\
"    <meta charset=\"UTF-8\">"\
"    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">"\
"    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">"\
"    <title>{title}</title>"\
"</head>"\
"<body>"\
"    "\
"</body>"\
"</html>"

方法三:用圆括号包裹多行(可读性略好于反斜杠)

把多行字符串放在圆括号内,Python会自动拼接:

title = "我的网页标题"
txt = (f"<html lang=\"en\">"
"<head>"
"    <meta charset=\"UTF-8\">"
"    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">"
"    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">"
"    <title>{title}</title>"
"</head>"
"<body>"
"    "
"</body>"
"</html>")

注意:原代码中的&lt;和&quot;是HTML实体转义,在Python字符串里不需要,直接写<和"即可,不会引发语法问题。

内容的提问来源于stack exchange,提问作者sarangkkl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:55:21