0

每次单词中出现元音时,我都会尝试添加某些文本。到目前为止,这是我的代码:

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

不同之处在于,在我的程序中,在“meab”之前有一个额外的“nc”。问题是当循环运行时,它首先添加'n',然后是'nc',然后是'ncm'(非元音),但我需要它添加'n',然后是'c',然后是'm'。

关于如何做到这一点的任何想法..?使用 python 3.2.3,谢谢。

4

2 回答 2

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)
于 2012-09-23T04:39:18.237 回答
0

不确定您尝试做什么,但如果您的目标是要获得 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
于 2012-09-23T04:45:30.153 回答