python - 在这个作业中,您将要求用户输入一个英文单词,将该单词翻译成“Pig Latin”,然后打印这两个单词
问题描述
我的计算机科学课有这个作业:
在此作业中,您将要求用户输入一个英文单词,将该单词翻译成“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”
以首字母大写开头的单词应翻译成首字母大写的单词。例如“Houston”变成“Oustonhay”,“Iceland”变成“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!")
我知道这是对的,因为我们在课堂上做了这部分,但是当我回到家时,我完全迷失了,不知道我需要做什么!请帮忙!
解决方案
由于这是一种家庭作业,因此我不是编写代码(SO 上值得称赞的做法)。
规则 3 应该包括找出哪个字符是第一个元音,然后将单词的片段从开头移动到那个字符到单词的结尾(从技术上讲,你可以用两个片段替换字符串,因为字符串在 python 中是不可变的)然后附加“ay”
规则 4:如果单词的第一个字母的大写(在任何修改之前)与该字母相同,则将该信息保存到某个变量中,并根据该更改(或不更改)输出的第一个字母
推荐阅读
- c# - 在 asp.net 中同时选择了三个单选按钮
- css - materialui工具提示右侧的CSS三角形
- machine-learning - 如何使用 cosine_similarity 运行 KNN?
- r - 如何使用'tables'包将data.frame写入R中的PDF表格?
- python - python烧瓶中的图标
- javascript - 函数在 Firebase 中创建新的用户身份验证,但不会在用户集合中创建相应的文档
- python - 在本网站上的某个人的帮助下,我使用 KivyMD 在 Python 中制作了按钮。这对他来说非常有效,但对我来说有问题
- html - 如何使用 display flex 实现这种设计?
- python - 从嵌套字典创建分组 DataFrame
- php - 将图像和缩略图一起上传,但未生成缩略图