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

Python 3.6 write语句格式化变量与字面量的正确写法及报错解决

问题根因
  • 语法错误核心是双引号嵌套未正确转义、字符串拼接时引号配对错误,同时错误地把要写入的字符串内容拆成了write()方法的多个参数,另外存在多余的右括号语法错误
  • 手动拼接字符串需要处理大量转义符,极易出现配对错误,是此类问题的常见诱因
修正后代码

Python 3.6支持f-string格式化,可读性和准确率远高于手动字符串拼接,修正后代码如下:

# 可根据需求选择是否用os模块处理路径,也可保留你原来的路径写法
import os
output_path = os.path.join(stellocation, "scripts", "sh4.ssc")

with open(output_path, 'w', encoding='utf-8') as stella:
    # 写入第一行setDate配置
    stella.write(f'core.setDate("{date}T{time}:00","UTC");\n')
    # 写入第二行观察者位置配置,可根据实际需求调整位置描述的拼接逻辑
    location_desc = f"USS Perch ({ocean})"
    stella.write(f'core.setObserverLocation({longitude}, {latitude}, 6, 0, "{location_desc}", "Earth");\n')
关键修改说明
  • 用单引号包裹整个要写入的字符串,字符串内部的双引号不需要额外转义,避免转义符配对错误
  • 整个要写入的内容作为write()方法的唯一字符串参数传入,没有多余的逗号拆分参数
  • 末尾添加\n换行符,保证两行输出和你的期望格式完全一致
  • 用with语句管理文件句柄,不需要手动调用close(),避免文件资源泄漏
  • 如果位置描述的前缀不是固定的USS Perch,直接修改location_desc变量的拼接逻辑即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:06:02