我参与了PigLatin翻译的一部分'程序。 这是我现在正在写作的部分。
input_str = input("Input a word: ")
consonant_check = 0
while input_str[int(consonant_check)] != 'a' or 'e' or 'i' or 'u':
output_str = input_str[:int(consonant_check)] + input_str[0,int(consonant_check)] + 'ay'
consonant_check = int(consonant_check) + 1
else:
print(output_str)
这部分应该检查单词输入是否以辅音开头。如果是,程序可以从单词的开头删除所有辅音,并将它们附加到单词的末尾。然后追加" ay"到这个词的结尾。 通过在线收集信息,我有一些关于如何实现这一点的线索,但我认为我的代码仍有问题。
答案 0 :(得分:3)
我会按照你的意图接近它,导致下面的代码。
简而言之,检查字符串的第一个字符。如果它不是元音(not in ['a','e','i','o','u'
]),请将字符移动到字符串的末尾。继续这样做,直到你碰到一个元音(所以'字符串'变成'然后'敲响'然后' ingstr'在打破循环之前) 。一旦你最后击中元音,你就离开循环,并打印修改过的字符串+' ay'。如果第一个字符是元音,则离开循环并打印字符串+' ay'。
没有必要设置辅音检查 - 你总是检查第一个字符(0)。并且不需要有两个变量 - 只需继续修改和替换原始字符串。
word_string = input("Input a word: ")
while word_string[0] not in ['a','e','i','o','u']:
word_string = word_string[1:] + word_string[0:1]
else:
print(word_string + 'ay')
答案 1 :(得分:2)
这不是你问题的直接答案,而是我对猪拉丁问题的解决方案。在学习python时,我发现查看已完成的示例有很大帮助。
word = "snake"
import string
# Create a list of vowels an consonants
vowels = ['a','e','i','o','u','y']
vowels += [v.upper() for v in vowels]
consonants = [x for x in string.ascii_letters if x not in vowels]
if word[0] in consonants:
# Find the first vowel
idx = min([word.find(v) for v in vowels if word.find(v)>0])
# Split the word at this point and add 'ay'
word = word[idx:] + word[:idx] + 'ay'
print(word)
# Returns "akesnay"
答案 2 :(得分:0)
我认为你的逻辑整体有些混乱。我建议像这样处理这个问题。
1。)检查第一个字母是否是辅音,如果没有,则不执行任何操作,如果是,请转到步骤2
2。)查找单词中的所有辅音并将其存储在列表中
3。)如果是,请从单词中删除元音,然后将所有辅音附加到末尾,然后按“'。”
有无限的方法来实际实现这一点,我认为你自己尝试实现它是一个很好的练习,但如果你需要更多帮助,请告诉我。