我在Python官方文档中看到了这样的声明:
str.upper().isupper() might be False
有人可以解释一下吗?
如果字符串是数字或由没有大写变体的字符(特殊字符等)组成,例如:
>>> '42'.upper().isupper()
False
>>> '-'.upper().isupper()
False
正如预期的那样:
>>> '42a'.upper().isupper()
True
小心,因为许多 unicode 字符都有一些奇怪的行为(请参阅 thg435 的答案:https ://stackoverflow.com/a/16495101/531222 )
他们声明的更多背景:
str.upper().isupper() 如果 s 包含未大写的字符或者如果结果字符的 Unicode 类别不是“Lu”(字母,大写),但例如“Lt”(字母,标题),则 str.upper().isupper() 可能为 False .
一个不加大小写的字符的例子:
>>> '1'.upper().isupper()
False
如果字符串由不支持大写的 unicode 字符组成:
>>> "عربية للفوتوشوب".upper().isupper()
False
str.upper
对数字没有意义:
>>> "3432".upper().isupper()
False
有些东西没有大写(我猜只有字母有,甚至不是所有语言)。
所以那些不会被打败upper
然后不是isupper
。
是的,如果字符串包含没有大写的数字和其他字符,则为 true