2017-02-22 113 views
-3

我正在制作猪拉丁文程序。 首先,我需要在一个列表,它是定义VOWELS:for猪拉丁文

vowel = ['a','e','i','o','u'] 

但是对于我的家庭作业的要求,我需要一个无限循环)。当输入'exit'时,程序停止。

而且,我需要使用在转换部分时(提示:for x in VOWELS)名单

所以,我怎么用这个循环?

如果我使用if语句,它工作正常。

while text!=('exit'): 
    ltext = text.lower() 
    first_letter = word[0] 
    if first_letter in vowel: 
     new_word=ltext+'ay' 
    else: 
     new_word=ltext[1:]+first_letter+'ay' 
    print(new_word) 

但我不知道如何使用for循环。那么如何使用for循环来比较first_letter in vowel

+0

小心碰到删除哎呦。把你的字符串当作一个字符列表。在for循环中使用它。没有我们做你的功课,这应该会给你一个正确的方向推动 – jarcobi889

+0

这不是典型的猪拉丁文。一般而言,在第一个元音之前删除字母,将它们粘贴到单词的末尾,然后添加“ay”,但这不是您正在做的。澄清,拜托? – Prune

+0

请说明您对** for循环的需求。对于你给我们展示的内容,一个** for **循环会很愚蠢:你在**运算符中使用**是正确的。“公约”部分是什么意思?这不是一个典型的编程概念。 – Prune

回答

1

要改变循环进入一个无限循环,也许你应该使用下面的?

while True: 
    text = input("Enter something") 
    if text == "exit": 
     break 

注意,这两个迭代和很好的工作在一个字符串作为一个列表:

vowel = "aeiou" 
... 
if first_letter in vowel: 
    ... 

我会更新这个关于该循环当你解释的必要性更清楚。

2

如何使用for循环比较元音中的first_letter

For循环用于迭代序列,例如一个字符序列的字符。所以,如果你想遍历一个单词说,你可以做这样的事情。

word = "stackoverflow" 
for charcter in word: 
    print(charcter) 

如果你想遍历一个句子的所有单词,你可以做这样的事情。

sentence = "Welcome to stackoverflow, my friend" 
for word in sentence.split(): 
    print(word) 

sentence.split() - 根据空格将句子拆分为单词。


对于Pig Latin,我相信你需要这样的事情。

vowel = ['a','e','i','o','u'] 
while True: # infinite loop 
    text = input("Give your input text: ") 
    if text == "exit": 
     break # stops the loop 
    else: 
     if text[0].lower() in vowel: 
      text = text + 'ay' 
     else: 
      if text[0].isupper(): 
       text = text[1].upper() + text[2:] + text[0].lower() + 'ay' 
      else: 
       text = text[1:] + text[0] + 'ay' 
     print(text) 

样品I/O:

Give your input text: pig 
igpay 
Give your input text: Latin 
Atinlay 
Give your input text: exit 
+0

@ user7607794我的回答对你有帮助吗?如果是的话,你可以接受它作为答案! –