公式の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」(文字、タイトルケース) である場合、False になる可能性があります。 .
大文字と小文字を区別しない文字の例:
>>> '1'.upper().isupper()
False
文字列が大文字をサポートしていない Unicode 文字で構成されている場合:
>>> "عربية للفوتوشوب".upper().isupper()
False
str.upper
数字には意味がありません:
>>> "3432".upper().isupper()
False
はい、文字列に大文字のない数字やその他の文字が含まれている場合は当てはまります
大文字がないものもあります (すべての言語ではなく、文字だけだと思います)。
したがって、それらは によって上回られることはなく、upper
ではありませんisupper
。