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

使用Python 3.10的chr()函数时出现问号图标问题求助

关于Python chr()函数返回方框/重复字符的疑问

问题描述

我在使用Python内置函数chr()(接受数字输入并返回对应Unicode字符,与ord()功能相反)时,编写循环遍历0到300的数字,发现大量数字返回的是方框问号,第0位是菱形框问号。想请教为何部分字符重复显示、部分缺失?我使用Google Colab编写代码,代码如下:

# using chr()
for i in range(0, 300):
    print(i, ":", chr(i))

原因分析

  • 方框/菱形问号是替换字符(�)
    这是系统或字体无法渲染对应Unicode码点时的占位符,主要源于两种情况:

    1. 控制字符:0-31的码点几乎都是控制字符(比如换行符\n对应10、制表符\t对应9),这类字符本身没有可视化形态,Colab会用菱形/方框占位符表示。
    2. 未定义/未支持的码点:0-300范围内存在部分Unicode未分配的码点,或者Colab默认字体没有包含对应字符的字形,只能用替换字符兜底。
  • 字符重复显示的原因

    1. 控制字符统一占位:多数控制字符没有专属视觉表现,都会被渲染成同一个占位符,看起来像是重复。
    2. 字体渲染限制:部分码点对应的字符在Colab的默认字体中没有区分度,或者被合并显示成同一形态。
    3. 兼容字符重叠:少数码点属于Unicode兼容字符集,本身和其他码点的视觉字符一致,单独显示时会看起来重复。
  • 字符“缺失”是误解
    实际上没有字符缺失,只是部分码点对应的字符不可见(控制字符)或无法被渲染(字体不支持),导致看不到可视化内容,并非chr()函数没有返回值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 07:55:15