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

Python 3.12.3打印元组遇语法错误:存在不可打印字符U+200B

解决Python中不可打印字符U+200B导致的语法错误问题

问题场景

在Python 3.12.3环境中编写代码,尝试将days元组与steps列表的元素一一配对存入新列表后打印,却触发语法错误,提示存在不可打印字符U+200B。即使单独执行print(days[0])也无法正常输出。

原始代码如下:

days = ('пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс')
steps = [5252, 785875, 7858, 787, 8755, 877, 597]

rar = []​
for i in range(len(days)):
    typle = days[i], steps[i]
    rar.append(typle)

print(rar)

问题原因

U+200B是零宽空格,属于不可打印的控制字符,通常是从网页复制代码、使用某些输入法或文本编辑工具时无意中引入的。Python解释器会将其视为代码语法的一部分,导致解析失败,即使看似无关的代码行也会受影响。

解决方法

  1. 手动清理可疑行:删除代码中存在隐藏字符的行(比如问题中的rar = []行),然后手动重新输入这些内容,确保没有引入不可打印字符。
  2. 编辑器辅助定位:使用支持显示控制字符的文本编辑器(如VS Code开启"控制字符可见性"功能),直接定位并删除U+200B字符。

优化后的代码

除了修复字符问题,还可以用Python内置的zip()函数简化配对逻辑,避免手动索引循环:

days = ('пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс')
steps = [5252, 785875, 7858, 787, 8755, 877, 597]

rar = list(zip(days, steps))
print(rar)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 22:09:59