Как заменить строки на другие строки с помощью метода .replace в python? - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь сделать следующее:

Заменить все введенные строки на "HA!".Сколько их, зависит от того, сколько букв в строке (три буквы означают три "HA!" И т. Д.)

CODE:

stringI = input("Enter anything in here! It will become laughter after 
you do this! \n")
if stringI.isalpha:
    print(stringI.replace(stringI, "HA!", len(stringI)))

Выводит только одну«ГА!», Независимо от количества символов в строке.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Я согласен с приведенными выше комментариями, что на самом деле нет необходимости использовать метод замены, потому что вы действительно просто делаете новую строку.Вот простой способ сделать это, который довольно легко визуализировать:

>>> count = 0
>>> stringI = input("Enter anything in here! It will become laughter after you do this\n")
Enter anything in here! It will become laughter after you do this
test test
>>> count = 0
>>> for char in stringI:
...     if char.isalpha():
...         count += 1
... 
>>> str_builder = ''
>>> for ha in range(count):
...     str_builder += "HA! "
... 
>>> str_builder
'HA! HA! HA! HA! HA! HA! HA! HA! '
>>>
0 голосов
/ 28 ноября 2018

Я могу придумать два способа сделать это:

  1. Зациклить строку для создания новой строки, заменив буквы на HA!

    def make_ha(s):
        return "".join(["HA!" if c.isalpha() else c for c in s])
    
  2. Создайте таблицу перевода и используйте ее для перевода строк

    from string import ascii_letters
    
    trans = str.maketrans(dict.fromkeys(ascii_letters, "HA!"))
    
    def make_ha2(s):
        return s.translate(trans)
    

Первое немного проще для понимания, а второе усложняется менее быстро, если выначните добавлять другие правила позже.Последний также работает только для букв ascii, тогда как первый будет работать на основе определения алфавитного символа в Юникоде.

print(make_ha("aaBB123"))  # HA!HA!HA!HA!123
print(make_ha2("aaBB123")) # HA!HA!HA!HA!123
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...