nuw2words - в строке заменить числа на буквы
Как из строки "1привет2"
получить строку "один привет два"
?
Источник: Stack Overflow на русском
Как из строки "1привет2"
получить строку "один привет два"
?
s="1привет2"
c={'1':'один','2':'два','3':'три','4':'четыре','5':'пять','6':'шесть','7':'семь','8':'восемь','9':'девять','0':'ноль'}
res=''
for ch in s:
if ch in '1234567890':
res+=' '+c[ch]+' '
else:
res+=ch
print(res)
Решение @Oopss хорошее, но требует небольшой доработки. Его программа даст результат " один привет два ", а требуется "один привет два". Вот доработанная версия:
s="1привет2"
c={'1':'один','2':'два','3':'три','4':'четыре','5':'пять','6':'шесть','7':'семь','8':'восемь','9':'девять','0':'ноль'}
res=''
len_s = len(s)
for i, ch in enumerate(s):
if ch in '1234567890':
if i == 0:
res += c[ch] + ' '
continue
if i == len_s - 1:
res += ' ' + c[ch]
continue
res+=' '+c[ch]+' '
else:
res+=ch
print(res)