我尝试过这句话......"你会说猪拉丁语吗?"
def igpay(sentence):
alist = sentence.split(" ")
NewSentence = ""
vowels = "aeoiu"
cons = "qwrtypsdfghjklzxcvbnm"
for i in range(len(alist)):
c = alist[i]
if c[0] in vowels:
a = c + "way"
NewSentence += a
elif c[0] not in vowels:
for j in range(len(c)):
f = c[j]
if f in cons:
o = c.replace(c[j],"")
a = c[j:j+1]
b = o + a
if f in vowels:
v = b + "ay"
NewSentence += v
return(NewSentence)
答案 0 :(得分:2)
您没有看到任何内容的原因是,NewSentence +=
的任何一行都没有到达。
永远不会达到第一行,因为没有以元音开头的单词。
永远不会达到第二行,因为除非if f in vowels
已知为真,否则永远不会执行测试if f in cons
。我想你可能在这里有缩进错误。
其他几点说明:
for
语句可以更清晰地写为for word in alist:
和for ltr in word:
(我使用变量word
代替c
,因为我认为它更清晰) 。您不需要循环整数值,然后根据该变量进行索引。if/elif
对可以更清楚地写成if/else
。没有其他可能的执行途径。in vowels
或in cons
语句将失败。