2017-02-22 8 views
-3

Я строю латинскую программу Pig. Во-первых, мне нужно определить гласные в списке, который:for loop in Pig Latin

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

Это не типичный Pig Latin. В общем, вы удаляете буквы перед первой гласной, привязываете их до конца слова и добавляете «ay», но это не то, что вы делаете. Уточните, пожалуйста? – Prune

+0

Просьба уточнить необходимость использования ** для ** цикла. Для того, что вы нам показали, цикл ** для ** был бы глупым: вы правильно используете оператор ** in **.Что вы подразумеваете под «условной частью»? Это не типичная концепция программирования. – Prune

ответ

1

Чтобы изменить в то время как цикл в бесконечный цикл, возможно, вы должны использовать следующее?

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

Обратите внимание, что обе итерации и в работают точно так же хорошо на строку, как в списке:

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

Я буду обновлять это относительно того для цикла, когда вы объяснить необходимость более четко.

2

Как использовать цикл for для сравнения first_letter в гласных?

Для петель используются для повторения последовательности, например слова, которое представляет собой последовательность символов. Итак, если вы хотите перебрать слово, скажите, вы можете сделать что-то подобное.

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 Помог ли мой ответ? если да, вы можете принять это как ответ! –