0
所以我有一个需要一个句子并返回到明胶中的函数。代码如下:当我输入一个字,但是当我输入一个句子就进入疯狂将一个句子转换成明胶
import re
from string import ascii_uppercase
def isvowel(ch):
vowels = ("a", "e", "i", "o", "u", "A", "E", "I", "O", "U")
for i in range(len(ch)):
if ch[i] in vowels:
return i
return -1
def format(ch):
if any(x in ascii_uppercase for x in ch):
ch = ch.capitalize()
m = re.search(r'\W+', ch)
if m:
ch = ch.replace(m.group(0), '') + m.group(0)
return ch
def igpay(astring):
vowels = ("a", "e", "i", "o", "u", "A", "E", "I", "O", "U")
words = astring.split()
count = 0
for ch in words:
vowel = isvowel(ch)
if vowel == 0:
astring = astring.replace(ch,(format(ch + "way")))
else:
astring = astring.replace(ch,(format(ch[vowel:] + ch[:vowel] + "ay")))
astring = astring.strip()
return astring
输出工作正常。
例子: 即时得到什么:
>>>igpay("An apple a day keeps the doctor away")
>>>'Anwawaywayy awaywaypplewawaywayy awayway dawaywayy eepskay ethay octorday awaywaywawaywayy'
我应该得到什么:
>>>igpay("An apple a day keeps the doctor away")
>>>'Anway appleway away ayday eepskay ethay octorday awayway'
如果我单独输入每个字,我得到一个正确的返回。到底是怎么回事?
Icenay ogrampray :) –