-
파이썬 List로 만든 숫자 한글 변환기코딩 2022. 6. 14. 22:36
Underten = ['영', '일', '이', '삼', '사', '오', '육', '칠', '팔', '구'] Overten = ['','만', '억', '조', '경', '자', '양'] Middle = ['', '십', '백', '천'] Input_Num = input("숫자 입력 : ") Input_Num_Arr = [Input_Num[(i-4)*(i>4):i] for i in range(len(Input_Num),0,-4)][::-1] for Arr_Index in range(len(Input_Num_Arr)): Sliced_Num = [int(Str) for Str in Input_Num_Arr[Arr_Index]] if Sliced_Num == [1] and Arr_Index == 0 and len(Input_Num_Arr) == 2: print(Overten[1], end='') continue for Num_Index in range(len(Sliced_Num)): if (Sliced_Num[Num_Index] > 1) or (len(Sliced_Num) == Num_Index+1 and Sliced_Num[Num_Index] != 0): print(Underten[Sliced_Num[Num_Index]], end='') elif Sliced_Num[Num_Index] == 0: continue print(Middle[len(Sliced_Num)-Num_Index-1], end='') print(Overten[len(Input_Num_Arr)-Arr_Index-1], end='') if Input_Num == '0': print(Underten[0], end='')
숫자를 입력하면 한글로 표기해준다.
아주 잘 동작한다 현재 코드에서는 양(최대 28자리)까지 지원하지만, Overten 리스트에 추가적인 단위를 넣는다면, 그대로 지원한다!
이 코드를 만들면서 깨달은점이 있는데, 한글 숫자 읽는법은 생각보다 어렵다는 점이다.
예를 들어 10,000의 경우에는, 그냥 "만"으로 읽지만, 100,000,000의 경우에는 "일억"으로 "억"이 아니다.
이렇게 만의 자리에만 있는 불규칙적 발음으로 예외 케이스가 발생한다.
그리고 내가 이 코드를 짜면서 애용한 테스트 케이스가 있다면 바로 100,010,000이다.
나는 살면서 저 숫자를 읽어본 기억이 없는거 같다. 일억일만... 발음 헷갈려서 한글 발음 마저 구글링 해버렸다.
'코딩' 카테고리의 다른 글
로또 예측, 그 결과와 이후 (0) 2022.07.02 파이썬 requests로 만든 로또 번호 예측 (0) 2022.06.27 파이썬 json으로 만든 인스타그램 DM txt파일로 내보내기 (0) 2022.06.02 파이썬 random으로 만든 로또 시뮬레이터 (0) 2021.05.16 파이썬 file write로 만든 ".py"파일 쉽게 만들기 (0) 2021.05.12