Попытка выяснить, как заменить только часть слова, используя списки, циклы For и .replace(). Я также нахожусь в процессе выяснения того, как извлечь целое число из кода, чтобы +1 и вернуть число.
Пока мой код выглядит следующим образом:
dictZero = [ "zero", "none", "nil", "null" ]
dictOne = [ "one", "won", "juan" ]
dictTwo = [ "two", "to", "too", "tu" ]
dictThree = [ "three" ]
dictFour = [ "four", "for", "fore" ]
userInput = input ( "Enter your sentence to inflate: " )
for i in userInput.split():
for e in dictFour:
if e in i:
userInput = userInput.replace ( i, "five" )
for d in dictThree:
if d in i:
userInput = userInput.replace ( i, "four" )
for c in dictTwo:
if c in i:
userInput = userInput.replace ( i, "three" )
for b in dictOne:
if c in i:
userInput = userInput.replace ( i, "two" )
for a in dictZero:
if a in i:
userInput = userInput.replace ( i, "one" )
#This seems to work but not sure how to assign it back into the Input
if int(i):
i = int(i) + 1
print (i)
print ( userInput)
Пример: Ввод = "Прежде чем я лягу спать в 16:30" Вывод = "Прежде чем я пойду на три кровати в 16:31"
По большей части код работает так, как я хочу. Если вы введете слово в список, оно заменит его соответствующим словом.
НО! Я не могу на всю жизнь понять, как разбить userInput на один шаг дальше, чтобы заменить слово, такое как «до», и получить результат как «пятый», а не пятый. Может быть, еще один оператор if с .split(), затем .join()?
Любая помощь или предложения будут оценены. Спасибо за ваше время.
int(i)
вызывает исключение, еслиi
является не целым числом.Что это так, я просто бездельничал, чтобы посмотреть, смогу ли я найти способ вытащить число, которое будет увеличено на +1. Явно не лучший вариант. Это работает, если ввод является просто числом.