Spaces:
Runtime error
Runtime error
#-*- coding:utf-8 -*- | |
# https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=chandong83&logNo=221144077279 | |
# μ μ½λμμ μΆκ° μμ | |
# λ§ λ¨μ μλ¦Ώμ | |
tenThousandPos = 4 | |
# μ΅ λ¨μ μλ¦Ώμ | |
hundredMillionPos = 9 | |
txtDigit = ['', 'μ', 'λ°±', 'μ²', 'λ§', 'μ΅'] | |
txtNumber = ['', 'μΌ', 'μ΄', 'μΌ', 'μ¬', 'μ€', 'μ‘', 'μΉ ', 'ν', 'ꡬ'] | |
txtPoint = 'μ© ' | |
def digit2txt(strNum): | |
resultStr = '' | |
digitCount = 0 | |
# print(strNum) | |
#μλ¦Ώμ μΉ΄μ΄νΈ | |
for ch in strNum: | |
# ',' 무μ | |
if ch == ',': | |
continue | |
#μμ«μ κΉμ§ | |
elif ch == '.': | |
break | |
digitCount = digitCount + 1 | |
digitCount = digitCount-1 | |
index = 0 | |
while True: | |
notShowDigit = False | |
ch = strNum[index] | |
#print(str(index) + ' ' + ch + ' ' +str(digitCount)) | |
# ',' 무μ | |
if ch == ',': | |
index = index + 1 | |
if index >= len(strNum): | |
break; | |
continue | |
if ch == '.': | |
# [μμ ] 0.13 μ²λΌ 1μ΄νμ κ°μ λν μ²λ¦¬ μΆκ° | |
if strNum[index - 1] == '0' and not resultStr: | |
resultStr = 'μ' | |
resultStr += txtPoint | |
else: | |
# μλ¦Ώμκ° 2μ리μ΄κ³ 1μ΄λ©΄ 'μΌ'μ νμ μν¨. | |
# λ¨ 'λ§' 'μ΅'μμλ νμ ν¨ | |
# [μμ ] digitCount >= 1μΌλ‘ μ€μ νμ¬ 'μ' λ¨μμμλ νμ | |
if(digitCount >= 1) and (digitCount != tenThousandPos) and (digitCount != hundredMillionPos) and int(ch) == 1: | |
resultStr = resultStr + '' | |
elif int(ch) == 0: | |
resultStr = resultStr + '' | |
# λ¨ 'λ§' 'μ΅'μμλ νμ ν¨ | |
if (digitCount != tenThousandPos) and (digitCount != hundredMillionPos): | |
notShowDigit = True | |
else: | |
resultStr = resultStr + txtNumber[int(ch)] | |
# 1μ΅ μ΄μ | |
if digitCount > hundredMillionPos: | |
if not notShowDigit: | |
resultStr = resultStr + txtDigit[digitCount-hundredMillionPos] | |
# 1λ§ μ΄μ | |
elif digitCount > tenThousandPos: | |
if not notShowDigit: | |
resultStr = resultStr + txtDigit[digitCount-tenThousandPos] | |
else: | |
if not notShowDigit: | |
resultStr = resultStr + txtDigit[digitCount] | |
if digitCount <= 0: | |
digitCount = 0 | |
else: | |
digitCount = digitCount - 1 | |
index = index + 1 | |
if index >= len(strNum): | |
break; | |
return resultStr | |
NATIVE_MAP_ONES = { | |
# "νλ": 1, "λ": 2, "μ ": 3, "λ·": 4, "λ€μ―": 5, | |
"ν": 1, "λ": 2, "μΈ": 3, "λ·": 4, "λ€μ―": 5, | |
"μ¬μ―": 6, "μΌκ³±": 7, "μ¬λ": 8, "μν": 9, | |
# "ν": 1, "λ": 2, "μΈ": 3, "μ": 3, "μ": 3, "λ€": 4, "λ": 4, "λ": 4, | |
# "λ·": 5, "μΏ": 6 | |
} | |
MAP_TENS = { | |
"μ΄": 10, "μ€λ¬Ό": 20, "μλ₯Έ": 30, "λ§ν": 40, "μ°": 50, | |
"μμ": 60, "μΌν": 70, "μ¬λ ": 80, "μν": 90 | |
} | |
def NNGdigit2txt(number): | |
# μ΄ ν¨μλ μ£Όμ΄μ§ μ«μλ₯Ό νκ΅μ΄ λ°μμΌλ‘ λ³νν©λλ€. | |
# μ: 25 -> "μ€λ¬Όλ€μ―", 91 -> "μννλ" | |
# μ¬κΈ°μλ μ λ¨μμ κΈ°λ³Έ μ«μμ μ‘°ν©λ§μ κ³ λ €ν©λλ€. | |
korean_number = "" | |
number = int(number) | |
if number >= 100: | |
korean_number = digit2txt(str(number)) | |
elif number < 10: | |
for key, value in NATIVE_MAP_ONES.items(): | |
if value == number: | |
return key | |
else: | |
tens = number // 10 | |
ones = number % 10 | |
for key, value in MAP_TENS.items(): | |
if value == tens * 10: | |
korean_number += key | |
for key, value in NATIVE_MAP_ONES.items(): | |
if value == ones: | |
korean_number += key | |
return korean_number | |
def CSign2txt(csign): | |
currency_symbols = { | |
"$": "λ¬λ¬", | |
"β¬": "μ λ‘", | |
"Β£": "νμ΄λ", | |
"Β₯": "μ", | |
"οΏ¦": "μ" | |
} | |
return currency_symbols.get(csign, "") |