>>> a='魏茨曼和'
>>> [i for i in a]
['\xe9', '\xad', '\x8f', '\xe8', '\x8c', '\xa8', '\xe6', '\x9b', '\xbc', '\xe5', '\x92', '\x8c']
>>> a='魏和和'
>>> [i for i in a]
['\xe9', '\xad', '\x8f', '\xe5', '\x92', '\x8c', '\xe5', '\x92', '\x8c']
>>> a[0]
'\xe9'
>>> a='魏茨曼和'
>>> [i for i in a]
['\xe9', '\xad', '\x8f', '\xe8', '\x8c', '\xa8', '\xe6', '\x9b', '\xbc', '\xe5', '\x92', '\x8c']
>>> a='魏和和'
>>> [i for i in a]
['\xe9', '\xad', '\x8f', '\xe5', '\x92', '\x8c', '\xe5', '\x92', '\x8c']
>>> a[0]
'\xe9'
python 2的字符串有隐式的str到byte的转换,而如下所示默认的是(3个byte代表一个中文字的utf8),所以你遍历出来是这个结果。
你可以这么写:
# encoding=utf-8
a = u'魏和河'
for i in a:
print i
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答989 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
python3默认是unicode,所以python3可以直接循环,但是python2不可以
代码