문자가 아닌 문자 처리
이 단계에서는 문자열이 대문자로 간주되는지 확인할 때 문자 이외의 문자를 처리하는 방법을 배우게 됩니다. 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를 반환합니다. 문자 이외의 문자가 무시되고 나머지 문자가 모두 대문자이기 때문입니다.
이 접근 방식을 사용하면 문자 이외의 문자가 포함된 경우에도 문자열이 대문자인지 정확하게 확인할 수 있습니다.