文字以外の文字を考慮する
このステップでは、文字列が大文字と見なされるかどうかをチェックする際に、文字以外の文字を考慮する方法を学びます。isupper()
メソッドは、すべての文字が大文字のアルファベットである場合にのみ True
を返します。文字列に数字、スペース、またはその他の文字以外の文字が含まれている場合、isupper()
は False
を返します。このようなケースを処理するには、isupper()
メソッドを適用する前に文字以外の文字を除外することができます。
文字以外の文字を考慮するように uppercase_strings.py
ファイルを修正しましょう。
- VS Code エディタで
uppercase_strings.py
ファイルを開きます。
- コードを修正して、文字以外の文字をフィルタリングするメカニズムを以下のように含めます。
## Example strings
string1 = "HELLO"
string2 = "Hello"
string3 = "123HELLO"
string4 = "HELLO WORLD"
string5 = "HELLO123WORLD"
## Function to check if a string is uppercase, ignoring non-letters
def is_uppercase_ignore_non_letters(s):
letters = ''.join(filter(str.isalpha, s))
return letters.isupper()
## Check if the strings are uppercase using the custom function
result1 = is_uppercase_ignore_non_letters(string1)
result2 = is_uppercase_ignore_non_letters(string2)
result3 = is_uppercase_ignore_non_letters(string3)
result4 = is_uppercase_ignore_non_letters(string4)
result5 = is_uppercase_ignore_non_letters(string5)
## Print the results
print(f"String 1: {string1}, is uppercase (ignoring non-letters): {result1}")
print(f"String 2: {string2}, is uppercase (ignoring non-letters): {result2}")
print(f"String 3: {string3}, is uppercase (ignoring non-letters): {result3}")
print(f"String 4: {string4}, is uppercase (ignoring non-letters): {result4}")
print(f"String 5: {string5}, is uppercase (ignoring non-letters): {result5}")
このコードでは:
is_uppercase_ignore_non_letters(s)
という関数を定義しています。この関数は、filter(str.isalpha, s)
を使用して入力文字列 s
から文字以外の文字を除外します。str.isalpha()
メソッドは、文字がアルファベット(A - Z、a - z)である場合に True
を返し、それ以外の場合は False
を返します。
''.join()
メソッドを使用して、フィルタリングされた文字を再び文字列に結合します。
- その後、フィルタリングされた文字列に
isupper()
メソッドを適用します。
- 最後に、元の文字列とカスタム関数からの対応する結果を出力します。
では、スクリプトを実行して出力を確認しましょう。
- VS Code 環境でターミナルを開きます。
- 以下のコマンドを使用して Python スクリプトを実行します。
python uppercase_strings.py
以下の出力が表示されるはずです。
String 1: HELLO, is uppercase (ignoring non-letters): True
String 2: Hello, is uppercase (ignoring non-letters): False
String 3: 123HELLO, is uppercase (ignoring non-letters): True
String 4: HELLO WORLD, is uppercase (ignoring non-letters): False
String 5: HELLO123WORLD, is uppercase (ignoring non-letters): True
ご覧の通り、string3
(123HELLO)と string5
(HELLO123WORLD)は、文字以外の文字が無視され、残りの文字がすべて大文字であるため、True
を返します。
このアプローチにより、文字列に文字以外の文字が含まれている場合でも、文字列が大文字であるかどうかを正確に判断することができます。