Подсчет аргументов в списках и печать списков

Я хочу, чтобы пользователи вводили случайные слова/цифры/фразы. Если они ввели более 5, они получат сообщение об ошибке, а если они введут 5 или меньше, я распечатаю список по вертикали. Я не знаю, какой код использовать, чтобы он не считал пробелы. Кроме того, я хочу подсчитать количество слов/цифр, а НЕ количество символов. Если бы вы могли просто взглянуть на мой код и помочь, это было бы здорово!

myList = [] 

myList = raw_input("Enter words,numbers or a phrase (a phrase should be entered between two quotations)...")

if len(myList) > 5:
print('Error')

else:
#print output
for variable in L:
    print variable

person user3093377    schedule 10.01.2017    source источник
comment
пожалуйста, исправьте отступ   -  person Patrick Haugh    schedule 10.01.2017
comment
raw_input("Enter words or numbers...").split() разделит текст на слова для вас.   -  person Jean-François Fabre    schedule 10.01.2017
comment
Предыдущее предложение разделит текст на list слов.   -  person martineau    schedule 10.01.2017
comment
Ок, отлично. Кроме того, если я хочу использовать такие фразы, как привет, мир, и хочу, чтобы они считались за единицу, будет ли это работать?   -  person user3093377    schedule 10.01.2017


Ответы (2)


Попробуйте что-то подобное, используя str.split() для возврата список слов в строке с разделителем по умолчанию в виде пробела:

myList = []

while(True):
    myList = raw_input("Please enter words or numbers: ")
    if(len(myList.split())) <= 5:
        break
    else:
        print("Error: You entered more than 5 arguments, Try again...")

for item in myList.split():
    print(item)

Попробуйте здесь!

person Sash Sinha    schedule 10.01.2017

Рабочий код для того, что вы хотите, следующий:

# I separate the input text by the spaces
data = raw_input("Enter something... ").split(" ")

# handle the data
if len(data) > 5:
    print("Only 4 or less arguments allowed!")
else:
    for variable in data:
        print(variable)

Теперь это не мешает пользователю вставлять другие символы, такие как !, $%"#$, поэтому для обработки этого случая вы должны проверить некоторые ответы на этот вопрос: Удаление всего, кроме буквенно-цифровых символов, из строки в Python

Веселиться!

person XzAeRo    schedule 10.01.2017
comment
Ок, отлично. Кроме того, если я хочу использовать такие фразы, как привет, мир, и хочу, чтобы они считались за единицу, будет ли это работать? - person user3093377; 10.01.2017
comment
Если вы хотите такого поведения, разделите вводимые пользователем слова запятыми и используйте split(",") - person Zanzag; 11.01.2017