使用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码点时的占位符,主要源于两种情况:- 控制字符:0-31的码点几乎都是控制字符(比如换行符
\n对应10、制表符\t对应9),这类字符本身没有可视化形态,Colab会用菱形/方框占位符表示。 - 未定义/未支持的码点:0-300范围内存在部分Unicode未分配的码点,或者Colab默认字体没有包含对应字符的字形,只能用替换字符兜底。
- 控制字符:0-31的码点几乎都是控制字符(比如换行符
字符重复显示的原因
- 控制字符统一占位:多数控制字符没有专属视觉表现,都会被渲染成同一个占位符,看起来像是重复。
- 字体渲染限制:部分码点对应的字符在Colab的默认字体中没有区分度,或者被合并显示成同一形态。
- 兼容字符重叠:少数码点属于Unicode兼容字符集,本身和其他码点的视觉字符一致,单独显示时会看起来重复。
字符“缺失”是误解
实际上没有字符缺失,只是部分码点对应的字符不可见(控制字符)或无法被渲染(字体不支持),导致看不到可视化内容,并非chr()函数没有返回值。
内容的提问来源于stack exchange,提问作者Marvelollama
相关产品推荐
相关产品推荐

