Страницы

Поиск по вопросам

среда, 5 декабря 2018 г.

Разделить строку на слова и вывести их на печать по одному

Как сделать программу, используя функцию. Вводишь строку из несколько слов с пробелами. Находишь все слова и выводишь все слова отдельными строчками. Что я делаю не так?
str1 = str(input()) i = 0 k = 0 list = []
def space(str1): return(str1) while k <= len(str1): if str1(i) != " ": list.append(str(i)) return(list) i += 1 k += 1
mini_list = space(str1) print(mini_list)


Ответ

Находишь все слова
Зря вы перебираете строку посимвольно в поисках пробелов.
Во-первых, бывают и другие пробельные символы, например, неразрывный пробел или табуляция. Они тоже разделяют строку на слова. Во-вторых, для деления строки на слова в Python 3 есть метод str.split(). Он разбивает строку по заданному разделителю, а если не указывать разделитель (т.е. по умолчанию) — по пробельным символам (конкретно: space, tab, newline, return, formfeed). Возвращает список строк, на которые поделил исходную.
Вот так:
words = input().split()
Заметьте, что str(input()) не нужно, input() и так возвращает строку.
Чтобы вывести каждое слово, достаточно перебрать список и каждое напечатать.
for word in words: print(word)
Оба действия можно объединить для лаконичности:
for word in input().split(): print(word)

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

Отправить комментарий