nuw2words - в строке заменить числа на буквы

Рейтинг: -4Ответов: 2Опубликовано: 22.08.2023

Как из строки "1привет2" получить строку "один привет два" ?

Ответы

▲ 1
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)
▲ 0

Решение @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)