Мне нужно написать функцию, которая принимает две строки (текст и слово) и возвращает текст с выбранным словом, замененным звездочками (количество звездочек должно соответствовать числу букв в цензуре.).Python, join() function, добавление пробела между словами
Например:
если текст = "Эй, эй, эй" и слово = "эй" возвращаемый текст должен быть:
'*** *** ***'
Вот мой код:
def censor(text,word):
text = text.split(" ")
asterisks=[]
text_with_asterisks=[]
for item in text:
if item not in word:
text_with_asterisks.append(item)
else:
asterisks=[]
for letter in word:
asterisks.append("*")
text_with_asterisks.append(' '.join(asterisks))
return (" ".join(text_with_asterisks))
Код работает, но он возвращает:
*********
и не
*** *** ***.
После того, как я использую строку:
return ("_".join(text_with_asterisks))
вместо этого я получаю:
'***_***_***'
Я не понимаю, почему "" игнорируется, и как я могу добавить пространство между словами.
Спасибо!
Я получаю '* * * * * * * * *' –
я не получаю тот же результат, как вы. Я получаю '' * * * * * * * * * '. Это происходит из-за строки 'text_with_asterisks.append ('' .join (asterisks)). Если я изменю '' ''там на' ''', я получаю '*** *** *** ''. – TheBlackCat
Вы можете умножить строки: '' * '* len (word) ' –