【发布时间】:2019-03-25 09:50:17
【问题描述】:
我的计算机科学课有这个作业要交:
在此作业中,您将要求用户输入一个英文单词,将该单词翻译成“Pig Latin”,然后打印这两个单词。
这些是规则:
如果一个词以元音开头(a, A, e, E, i, I, o, O, u, U),那么翻译是通过在结尾添加一个“方式”来形成的单词。例如“at”变成“atway”,“egg”变成“eggway”
如果一个词不包含元音(a、A、e、E、i、I、o、O、u、U),则翻译是通过在词尾添加“方式”来形成的.例如“my”变成“myway”,“by”变成“byway”
如果单词以辅音开头并包含元音,则通过将辅音向上移动到单词末尾的第一个元音并添加“ay”来形成翻译。例如“bat”变成“atbay”,“that”变成“atthay”,“three”变成“eethray”
以首字母大写开头的单词应翻译成首字母大写的单词。例如“休斯顿”变成了“Oustonhay”,“冰岛”变成了“Icelandway”,“Marry”变成了“Arrymay”
这是我到目前为止的编程。我被第三条和第四条卡住了:
def is_vowel(letter):
return letter.upper() in 'AEIOU'
def has_vowel(word):
for letter in word:
if is_vowel(letter):
return True
return False
def translate(word):
if is_vowel(word[0]): #is the first letter
return word + "way"
elif has_vowel(word):
pass
else: #there is no vowel
return word + "way"
#stuff before the loop
print("This program will translate a word from English to Pig Latin.")
choice = "Y"
#stuff in the loop
while choice.upper() == 'Y':
word = input("Please enter a word: ")
print(word, "becomes", translate(word) + ".")
choice = input("Would you like another word? (Y/N) ")
#stuff after the loop
print("Ankthay ouyay!")
我知道这是对的,因为我们在课堂上做了这部分,但当我回到家时,我完全迷失了,不知道我需要做什么!请帮忙!
【问题讨论】:
-
首先,您的缩进是错误的(例如在您的
if和elif之后),这在Python 中很重要。请修复它。 -
刚刚更新了!
标签: python