После "!" заменить все символы на "*"

Ввести строку. Если в строке есть символ "!", то заменить все символы после первого "!" на символ "*".
Если символа "!" нет в строке, то вывести об этом сообщение.

Подскажите, как заменить все символы после "!", а не один? (ничего на просторах интернета не нашла)


Ответы (3 шт):

Автор решения: S. Nick

Попробуйте так:

line = 'Если в строке есть символ "!", то заменить все символы после первого "!" на символ "*"'
index = line.find("!")

if index == -1:
    print('Символа "!" нет в строке, вывести об этом сообщение.')
else:
    line = line[0:index+1] + "*" * len(line[index+1:])
    print(f'\nline = {line}')


line = 'Hello World'
index = line.find("!")

if index == -1:
    print('\nСимвола "!" нет в строке, вывести об этом сообщение.')
else:
    line = line[0:index+1] + "*" * len(line[index+1:])
    print(f'line = {line}')
→ Ссылка
Автор решения: AdamBeno

Попробуйте так:

a = input()
if "!" in a:
    x = a.index('!')
    for i in range(x, len(a) - 1):
        a = a[:i+1] + "*"
    print(a)
else:
    print('! Не найден')
→ Ссылка
Автор решения: Oranage_boy

Метод replace заменит все знаки стареы указанные знаки на новые. В данном случае к введённой строке сразу применяется метод replace,меняя все знаки "!" на "*".Повторно указанный replace поменяет "*" обратно на "!",но только первый элемент.

    a = input('>').replace('!', '*').replace('*', '!', 1)
    if '!' not in a:
        print('! отсутствует')
→ Ссылка