我正在尝试创建一个程序,可以将英语和英语句子转换成Piglatin,从Piglatin转换成英语。
到目前为止,英语到Piglatin部分工作正常,但我很难从Piglatin转换成英语。
def eng2Pig(sentence):
sentsplit = sentence.split()
for part in sentsplit:
print((part[1:] + part[0] + "ay"), end = " ")
def pig2Eng(sentence):
sentv1 = sentence.replace("ay", "")
sentsplit = sentv1.split()
for part in sentsplit:
print(part[-1] + part[:-1], end = " ")
def aySearch(sentence):
numwords = len(sentence.split())
numay = sentence.count("ay ")
if numwords == numay:
pig2Eng(sentence)
else:
eng2Pig(sentence)
x = input("Enter your sentence: ")
x = x + " "
aySearch(x)
我在转换最初包含ay的英语单词时遇到了麻烦。例如,今天转换为Piglatin将是今天。但是,我正在用#34;"删除额外添加的ay。
也许我需要计算一个单词中ay(s)的数量,然后根据它来决定是否要删除多个ay。
谢谢 -
祝你好运答案 0 :(得分:1)
一个问题是做替换(" ay","")会改变单词say int s,所以它会破坏你的句子。这是一个更好的解决方案。
def pig2Eng(sentence):
eng = ""
sentsplit = sentence.split()
for word in sentsplit:
eng += word[-3:-2] + word[:-3] + " "
return eng
print (pig2Eng("igpay atinlay siay tupidsay"))
另请注意,返回结果通常是更好的编程形式,而不是在函数中打印它。
答案 1 :(得分:0)
这是我最终做的 - 这很好用。
def eng2Pig(sentence):
pig = ""
sentsplit = sentence.split()
for part in sentsplit:
pig += (part[1:] + part[0] + "ay" + " ")
return pig
def pig2Eng(sentence):
eng = ""
sentsplit = sentence.split()
for part in sentsplit:
eng += (part[-3] + part[:-3] + " ")
return eng
def aySearch(sentence):
numwords = len(sentence.split())
numay = sentence.count("ay ")
if numwords == numay:
return pig2Eng(sentence)
else:
return eng2Pig(sentence)
def main():
x = input("Enter your sentence: ")
x = x + " "
print(aySearch(x))
main()