Как мне заставить этот код pig latin функционировать?

#python #python-3.x

#python #python-3.x

Вопрос:

Этот код pig latin, который я создал, кажется, в порядке, но он запрашивает ввод, а затем выводит сам ввод. Что здесь не так?

 def pig_latin(string_x):
    word_list=string_x.split()
    for item in word_list:
        if (item[:1]).lower() in ["a",'e','i','o','u']:
            item ='ay'
        else:
            item=item[1:] item[:1] 'ay'
    print(" ".join(word_list))

x=input()
pig_latin(x) 
  

Комментарии:

1. Вы должны использовать x=input("Input something : ")

2. В противном случае ваш код будет делать это: pig_latin("Input something : ") .

3. О, мне очень жаль, но это опечатка с моей стороны. Я использовал x = input (), и он все еще не функционирует

4. @T.Feix хотя вы правы в этом, есть проблемы посерьезнее. Я полагаю, что str(...) бит был добавлен постфактум

5. @user9605362 кстати, вам нужно будет отмечать пользователя, когда он комментирует, иначе он не получит уведомления

Ответ №1:

Когда вы присваиваете значение item , вы изменяете переменную item , но не значение этого элемента в списке. Вы хотите что-то вроде:

 def pig_latin(string_x):
    word_list=string_x.split()
    new_word_list = []
    for item in word_list:
        if (item[:1]).lower() in ["a",'e','i','o','u']:
            new_word_list.append(item 'ay')
        else:
            new_word_list.append(item[1:] item[:1] 'ay')
    print(" ".join(new_word_list))

x=input()
pig_latin(x) 
  

Ответ №2:

 def pig_latin(string_x):
    word_list = string_x.split()
    translated = []
    for item in word_list:
        if (item[:1]).lower() in ["a", 'e', 'i', 'o', 'u']:
            item  = 'ay'
        else:
            item = item[1:]   item[:1]   'ay'
        translated.append(item)
    print(" ".join(translated))

x = input("Input something : ")
pig_latin(x)
  

Возникло несколько проблем:

  • Если вы хотите принимать пользовательский ввод, вам нужно использовать input вместо str
  • Вам нужно иметь возможность сохранять созданные вами элементы на случай, если пользователь вводит несколько слов, поэтому я создал translated список.
  • Вы печатали список слов в своих выходных данных, который был просто разделенной версией входных данных.