猿问
str.upper()。isupper()可能为False
我在官方
Python文档中
看到了以下声明:
str.upper().isupper() might be False
有人可以解释一下吗?
HUX布斯
浏览 383
回答 3
3回答
GCT1015
如果字符串是数字或由不带大写变体的字符组成(特殊字符等),例如:>>> '42'.upper().isupper()False>>> '-'.upper().isupper()False和预期的一样:>>> '42a'.upper().isupper()True请注意,因为许多Unicode字符都有一些奇怪的行为
0
0
0
RISEBY
他们陈述的更多背景:如果s包含无大小写的字符,或者结果字符的Unicode类别不是“ Lu”(字母大写),而是例如“ Lt”(字母大写),则str.upper()。isupper()可能为False。 。无大小写字符的示例:>>> '1'.upper().isupper()False
0
0
0
炎炎设计
我认为,isupper/islower函数在python中已损坏。首先,他们使用了“ cased”的错误定义。Unicode中有很多具有大写/小写变体的符号,但不属于此L类别。例如,Ⓐ显然是大写的,并且确实具有小写的等价项ⓐ,但是"Ⓐ".isupper()在python中为False。有关更多详细信息,请参见此错误报告。其次,有一个逻辑上的错误。isupper与“所有大小写的字符都在此字符串的上方”相同,并且如果没有大小写的字符,则应返回True,而不是False,就像内置字符一样all()(“所有独角兽都是红色的”)。这样,可以容易地避免所讨论的混乱。
0
0
0
随时随地看视频
慕课网APP
相关分类
Python
我要回答