2

我在Python官方文档中看到了这样的声明:

str.upper().isupper() might be False

有人可以解释一下吗?

4

6 回答 6

4
于 2013-05-11T08:02:17.183 回答
4

如果字符串是数字或由没有大写变体的字符(特殊字符等)组成,例如:

>>> '42'.upper().isupper()
False
>>> '-'.upper().isupper()
False

正如预期的那样:

>>> '42a'.upper().isupper()
True

小心,因为许多 unicode 字符都有一些奇怪的行为(请参阅 thg435 的答案:https ://stackoverflow.com/a/16495101/531222 )

于 2013-05-11T07:34:29.647 回答
4

他们声明的更多背景:

str.upper().isupper() 如果 s 包含未大写的字符或者如果结果字符的 Unicode 类别不是“Lu”(字母,大写),但例如“Lt”(字母,标题),则 str.upper().isupper() 可能为 False .

一个不加大小写的字符的例子:

>>> '1'.upper().isupper()
False
于 2013-05-11T07:34:55.433 回答
2

如果字符串由不支持大写的 unicode 字符组成:

>>> "عربية للفوتوشوب".upper().isupper()
False

str.upper对数字没有意义:

>>> "3432".upper().isupper()
False
于 2013-05-11T07:35:19.357 回答
1

有些东西没有大写(我猜只有字母有,甚至不是所有语言)。

所以那些不会被打败upper然后不是isupper

于 2013-05-11T07:34:47.067 回答
1

是的,如果字符串包含没有大写的数字和其他字符,则为 true

于 2013-05-11T07:35:05.457 回答