ValueErro: invalid literal for int() with base 10: ' '

Sergelios

Новичок
Пользователь
Дек 14, 2021
21
0
1
Помогите, пожалуйста, начинающему.
Задача: вводится строка из букв латинского алфавита и цифр,
программа должна заменить числа в строке на буквы латин-
ского алфавита в нижнем регистре.
Вот моя программа:

latin="abcdefghijklnopqrstuvwxyz"
text=input()
i=0
while i in range(len(text)):
cislo=""
while "0"<=text<="9":
cislo+=text
i+=1
continue
if cislo:
text=text.replace(cislo, latin[int(cislo)-1])
i=o
i+=1

print(text)
Пайтон выдает ошибку: ValueErro: invalid literal for int() with base 10: ' '
в строке кода text=text.replace(cislo,latin[int(siclo)-1]2021-12-14_10-07-38.png
 

agassi

Новичок
Пользователь
Дек 13, 2021
4
0
1
Python:
latin = list('abcdefghijklnopqrstuvwxyz')
digit = list('0123456789')
text = list(input())

for i in range(len(text)):
    if text[i] in digit:
        text[i] = latin[i]
print(*text, sep = '')
 

Sergelios

Новичок
Пользователь
Дек 14, 2021
21
0
1
Python:
latin = list('abcdefghijklnopqrstuvwxyz')
digit = list('0123456789')
text = list(input())

for i in range(len(text)):
    if text[i] in digit:
        text[i] = latin[i]
print(*text, sep = '')
Спасибо, большое. Очень красивое решение. Но у меня в задании замена цифр должна быть по такому принципу:
In: text=list(Hel12o 16e15ple)
Out: Hello people

Как это можно реализовать? Добавить в в строку digit цифр до 100?
Заранее благодарен Вам за ответ.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 599
464
83
можно так
Python:
latin = list('abcdefghijklmnopqrstuvwxyz')

text = list(input("Введите текст: "))

for index, value in enumerate(text):
    try:
        if value.isdigit() and text[index + 1].isdigit():
            num = value + text[index + 1]
            text[index] = latin[int(num) - 1]
            text.remove(text[index + 1])
            continue
        if value.isdigit():
            text[index] = latin[int(value) - 1]
    except IndexError:
        if value.isdigit():
            text[index] = latin[int(value) - 1]

print("".join(text))
 
Последнее редактирование:

Sergelios

Новичок
Пользователь
Дек 14, 2021
21
0
1
можно так
Python:
latin = list('abcdefghijklmnopqrstuvwxyz')

text = list(input("Введите текст: "))

for index, value in enumerate(text):
    try:
        if value.isdigit() and text[index + 1].isdigit():
            num = value + text[index + 1]
            text[index] = latin[int(num) - 1]
            text.remove(text[index + 1])
            continue
        if value.isdigit():
            text[index] = latin[int(value) - 1]
    except IndexError:
        if value.isdigit():
            text[index] = latin[int(value) - 1]

print("".join(text))
Спасибо большое!
 

agassi

Новичок
Пользователь
Дек 13, 2021
4
0
1
Спасибо, большое. Очень красивое решение. Но у меня в задании замена цифр должна быть по такому принципу:
In: text=list(Hel12o 16e15ple)
Out: Hello people

Как это можно реализовать? Добавить в в строку digit цифр до 100?
Заранее благодарен Вам за ответ.
Напишите само задание с оригинальной формулировкой
 

fedor0ff

Новичок
Пользователь
Дек 23, 2021
1
0
1
Python:
text = input()
latin="abcdefghijklnopqrstuvwxyz"
i = 0
while i in range(len(text)):
    a = ""
    while "0" <= text[i] <= "9":
        a += text[i]
        i += 1
        continue
    if a:
        text = text.replace(a, latin[int(a)-1])
        i=0
    i+=1
print(text)

Вроде должно быть так, но есть но, когда вводишь строку и на конце ее цифра то выдает ошибку! Товарищи помогите справиться!

Вам необходимо в строке, полученной со стандартного ввода найти все цифры и заменить их на букву латинского алфавита, располагающуюся по данному индексу (все символы в строке вводятся в нижнем регистре). Примечание: две цифры не могут располагаться рядом. Те если у вас есть строка «19у» это значит что у вас одна цифра 19, а не 1 и 9. Как результат вы должны получить «sy» Sample Input: Hel12o
Так звучит оригинальное задание
 

Форум IT Специалистов