기타
한글 입력이 올바른지 알아보는 파이썬 코드
비숑주인
2023. 5. 14. 16:36
def is_valid_hangul_input(input_str):
"""
한글 입력이 올바른지 확인하는 함수
Parameters
----------
input_str : str
한글 입력 문자열
Returns
-------
bool
올바른 입력이면 True, 그렇지 않으면 False
"""
for char in input_str:
# 한글 음절의 범위는 '\uAC00' ~ '\uD7A3' 입니다.
if '\uAC00' <= char <= '\uD7A3':
# 각 음절의 초성, 중성, 종성 유니코드 값 범위를 계산합니다.
char_code = ord(char) - 0xAC00
jongseong = char_code % 28
junseong = ((char_code - jongseong) // 28) % 21
choseong = (((char_code - jongseong) // 28) - junseong) // 21
# 초성, 중성, 종성 범위에 속하지 않으면 False를 반환합니다.
if not (0 <= choseong <= 18 and 0 <= junseong <= 20 and 0 <= jongseong <= 27):
return False
else:
# 한글 음절이 아니면 False를 반환합니다.
return False
return True
위 코드에서는 입력된 문자열을 순회하면서 각각의 문자가 한글 유니코드 범위인 '\uAC00' ~ '\uD7A3' 에 속하는지 확인한다. 그리고 초성, 중성, 종성의 유니코드 값 범위를 계산하여 각각의 범위에 속하는지 확인한다. 초성, 중성, 종성의 범위에 속하지 않는 문자가 있으면 False를 반환하고, 모든 문자가 한글 음절의 범위에 속하고 초성, 중성, 종성 범위에 속한다면 True를 반환한다
input_str = input("한글 입력을 입력하세요: ")
if is_valid_hangul_input(input_str):
print("올바른 입력입니다.")
else:
print("잘못된 입력입니다.")