【发布时间】:2012-09-15 09:40:58
【问题描述】:
我正在尝试在某些单词中添加带有元音的文本(不是像 ie 或 ei 这样的连续元音),例如:
单词:“奇怪”
要在元音前添加的文本:'ib'
结果:'wibeird'
因此,在元音“e”之前添加了文本“ib”。请注意它没有将 'i' 替换为 'ib',因为当元音是连续的时,我不希望它添加文本。
但是,当我这样做时:
单词:“狗”
要在元音之前添加的文本:'ob'
结果:'doboog'
正确的结果应该是:'dobog'
我一直在尝试调试我的程序,但我似乎无法弄清楚逻辑以确保它正确打印“wibeird”和“dobog”。
这是我的代码,先将 first_syl 替换为 'ob',然后将 word 替换为 'dog',然后再将其替换为 'weird'。
first_syl = 'ib'
word = 'weird'
vowels = "aeiouAEIOU"
diction = "bcdfghjklmnpqrstvwxyz"
empty_str = ""
word_str = ""
ch_str = ""
first_vowel_count = True
for ch in word:
if ch in diction:
word_str += ch
if ch in vowels and first_vowel_count == True:
empty_str += word_str + first_syl + ch
word_str = ""
first_vowel_count = False
if ch in vowels and first_vowel_count == False:
ch_str = ch
if word[-1] not in vowels:
final_str = empty_str + ch_str + word_str
print (final_str)
我正在使用 Python 3.2.3。另外我不想使用任何导入的模块,试图这样做以了解python中字符串和循环的基础知识。
【问题讨论】:
-
请注意,您不是在替换元音,而是在元音前面插入一个字符串。如果我们替换它,在将 'o' 替换为 'ob' 之后,'dog' 将变为 'dobg'。
-
在您的第一个示例中,看起来您根本没有替换“e”-“wibeird”中仍然有一个 e
-
对不起,我不是要“替换”我实际上是想在元音之前添加文本,我很抱歉。我现在在描述中解决了这个问题。