(uchar >= u'\u0041' and uchar<=u'\u005A') 是 ASCII 大写字母 A-Z
(uchar >= u'\u0061' and uchar<=u'\u007A') 是 ASCII 小写字母 a-z
注释都说了,这个智能判断是否为字母,而不能判断是大写还是小写……
你这个写法也不够 Pythonic,可以写成
(u'\u0041' <= uchar <=u'\u005A') or (u'\u0061' <= uchar <=u'\u007A')
@
skinny Python 是可以直接比较字符串的 ASCII 值的
可以尝试以下代码:
from enum import Enum
class InAlphabetResult(Enum):
    UpperCase = 1
    LowerCase = 2
    NotInAlphabet = 3
def in_alphabet(char):
    if "a" <= char <= "z":
        return InAlphabetResult.LowerCase
    if "A" <= char <= "Z":
        return InAlphabetResult.UpperCase
    return InAlphabetResult.NotInAlphabet