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

Python不识别/n换行符 执行拼接的多行输入代码报错如何解决

问题原因

  • 你代码中用于拼接的/n是普通字符序列,并非Python识别的换行转义符,Python的换行转义符为反斜杠开头的\n。这就导致拼接后的代码没有真正换行,/n被直接嵌入代码语句中,触发语法错误。
  • 报错日志中while True:/n print('a')的内容也验证了该问题:/n没有被解析为换行,而是成为了while语句的一部分,不符合Python语法规范。

修复方法

直接将拼接语句中的正斜杠替换为反斜杠即可,修改对应代码行:

# 错误写法
exec('/n'.join(instlist))
# 修正后写法
exec('\n'.join(instlist))

如果需要兼容Windows平台的换行格式,也可以写为exec('\r\n'.join(instlist)),常规场景下\n已经可以被Python正确解析。

可选优化

你可以同步优化代码的冗余逻辑,优化后完整参考代码如下:

def main():
    opt = setup()
    # 优化判断逻辑,不用写两个等值判断
    if opt.lower() == 'y':
        instlist = []
        # 简化循环结构,不用提前初始化inst变量
        while True:
            inst = input('Enter codeline to execute, when done type "end"')
            if inst == 'end':
                break
            instlist.append(inst)
        exec('\n'.join(instlist))
        input()

注意:exec执行用户任意输入的代码存在极高安全风险,仅限本地测试场景使用,禁止在公开可访问的服务中引入该逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:36:05