Вопрос:
Я пытаюсь добавить определенный текст каждый раз, когда гласная появляется в одном слове. Вот мой код:
first_syl = ‘ab’ second_syl = ‘bc’ word = ‘income’ vowels = «aeiou» diction = «bcdfghjklmnpqrstvwxyz» empty_str = «» word_str = «» for ch in word: if ch in diction: word_str += ch if ch in vowels: empty_str += word_str + ch + first_syl print (empty_str)
Результат – iabncoabncmeab
Правильный результат – iabncoabmeab
Разница в том, что в моей программе есть дополнительный “nc” прямо перед “meab”. Проблема в том, что при запуске цикла он добавляет сначала “n”, затем “nc”, затем “ncm” (не гласные), но вместо этого мне нужно добавить “n”, затем “c”, а затем “m”.
Есть идеи, как это сделать..? Используя python 3.2.3, спасибо.
Лучший ответ:
Не уверен, что вы пытаетесь сделать, но если ваша цель – покорить iabncoabmeab. Затем вам нужно сбросить word_str после появления гласного
for ch in word: if ch in diction: word_str += ch if ch in vowels: empty_str += word_str + ch + first_syl word_str=»» // I don’t now python but you should clear the string Ответ №1
Если я понимаю вашу цель правильно, вы хотите добавить ch в empty_str на каждом проходе, а затем добавьте first_syl, когда вы нажмете гласную.
Причина, по которой вы складываете, – это + = word_str каждый раз, когда вы нажимаете гласную. Это будет только ухудшаться, чем больше гласных в строке, которую вы предоставляете в качестве источника.
for ch in word: empty_str += ch if ch in diction: word_str += ch if ch in vowels: empty_str += first_syl print (empty_str, word_str)