изменить больше символов в питоне 3 - PullRequest
0 голосов
/ 18 марта 2019

Моя проблема заключается в следующем:

Я спрашиваю у кого-то строку (например: Это текст):

a = input("Enter a text: "))

Я хотел бы изменить каждую гласную, как это: e-> eve, a-> ava, i-> ivi, u-> uvu, o-> ovo с for для цикла В конце я бы напечатал новый текст

Мое решение:

b = a.replace('o', 'ovo').replace('u', 'uvu')
print(b)

Но это не использует для цикла

Не могли бы вы помочь мне, пожалуйста? Спасибо!

Ответы [ 4 ]

1 голос
/ 18 марта 2019

Вы можете перебрать строку в Python с помощью for c in "string":

Используя это, вы можете решить вашу проблему с помощью

newString=""
for c in a:
    if c in ["a", "e", "i", "o" "u", "y"]:
        newString+=c+"v"+c
    else:
        newString+=c
0 голосов
/ 18 марта 2019

Спасибо всем! Целое решение:

transforms = {'a':'ava',
              'e':'eve',
              'i':'ivi',
              'u':'uvu',
              'o':'ovo',
              'ö':'övö',
              'ü':'üvü',
              'ó':'óvó',
              'ő':'ővő',
              'ú':'úvú',
              'é':'évé',
              'á':'ává',
              'ű':'űvű',
              'í':'ívi'}

test_string = input('Írj be egy tetszőleges szöveget, amit ivigyelek: ')

new_string = ''

for char in test_string:
    if char in transforms:
        new_string += transforms[char]
    else:
        new_string += char

print(new_string)
0 голосов
/ 18 марта 2019
for c in ('a','e','i','o','u'):
     a = a.replace(c, c+'v'+c)
print(a)

Вы можете создать предыдущую копию a, если вам нужна исходная строка.

0 голосов
/ 18 марта 2019

Я предполагаю, что для цикла вы имеете в виду цикл?

Для этого преобразования вы можете использовать поисковый словарь в сочетании с циклом for.Два игрушечных примера:

transforms = {'a':'ava',
              'e':'eve',
              'i':'ivi',
              'u':'uvu',
              'o':'ovo'}

test_string = 'This is some text'

Сначала вы можете создать новую строку с замененными словами:

new_string = ''

for char in test_string:
    if char in transforms:
        new_string += transforms[char]
    else:
        new_string += char

, что приводит к 'Thivis ivis sovomeve tevext'.

Иливы можете преобразовать оригинал в список и заменить элементы, используя словарь (и, наконец, присоединиться к вашему списку):

test_string = list(test_string)

for i, ch in enumerate(test_string):
    if ch in transforms:
        test_string[i] = transforms[ch]

test_string = ''.join(test_string)

, что также дает 'Thivis ivis sovomeve tevext'

...