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

Python字符串无法转为大写?求解析代码未达预期输出的原因

为啥你的Python代码没输出预期结果?

嘿,我来帮你拆解下问题所在:

你列表里的那些字符串看起来像英文小写的free和codecamp,但它们根本不是真正的英文字母——而是外观相似的韩文音节字符!比如횏、횛这些都是独立的韩文字符(属于Unicode里的Hangul字符集),和英文的f、r完全是不同的码点。

Python的str.upper()方法只对那些有对应大写形式的字符起作用,比如把英文小写a转成A,但这些韩文字符本身就没有对应的英文大写形式,所以调用upper()后自然不会有任何变化,输出的还是原来的韩文字符。

怎么解决?

有两种简单的办法能得到你想要的结果:

方法1:直接用真实的英文字符(最推荐)

如果没有特殊需求,直接把列表里的字符换成真正的英文小写字母就行,修改后的代码如下:

my_list = ['free', 'codecamp']
for i in my_list:
    print(i.upper())
print(my_list)

运行这段代码就会输出:

FREE
CODECAMP
['free', 'codecamp']

方法2:做字符映射(必须保留原特殊字符时用)

如果你因为某些原因必须保留原来的特殊字符,同时要输出对应的英文大写,可以做一个字符映射表,把每个外观相似的韩文字符对应到英文大写字母:

# 先建立字符映射关系
char_map = {
    '횏': 'F',
    '횛': 'R',
    '횎': 'E',
    '회': 'C',
    '횘': 'O',
    '획': 'D',
    '횊': 'A',
    '횖': 'M',
    '횙': 'P'
}

my_list = ['횏횛횎횎', '회횘획횎회횊횖횙']
for s in my_list:
    # 逐个字符替换成对应的英文大写
    converted_str = ''.join([char_map[char] for char in s])
    print(converted_str)
print(my_list)

运行这段代码也会得到你想要的输出:

FREE
CODECAMP
['횏횛횎횎', '회횘획횎회횊횖횙']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:58:10