Форум сайта python.su
Имеется такая задача: пользователю предлагается ввести несколько строк. После их ввода программа считает колличество слов в первой строке и выводит это число на экран, затем во второй строке, в третей и т.д. Пустой строке соответствует 0.
Помогите пожалуйста решить эту задачу.
Офлайн
from pprint import pprint input_words = lambda x, y = []: x and \ (y.append(raw_input()) or True) and \ input_words(x - 1, y) or y get_len = lambda x: len(filter(lambda y: y.strip(), x.split(' '))) [pprint(get_len(s)) for s in input_words(3)]
Отредактировано (Дек. 22, 2007 14:17:47)
Офлайн
Огромное спасибо за решение программы. А как переделать её так, чтобы строки она брала из текстового файла(т.е. открывала обычный текстовой файл и брала строки из него), а затем число слов в строке записывала в другой файл.
Отредактировано (Дек. 22, 2007 15:06:28)
Офлайн
[__import__("pprint").pprint(len(filter(lambda y: y.strip(), s.split(" ")))) for s in __import__("sys").stdin] [code][code] in Windows: q.py < my_strings.txt > result.txt[/code]
Отредактировано (Дек. 22, 2007 15:23:34)
Офлайн
Я сам новичок в питоне, поэтому наверно делаю что-то не так. Программа не хочет запускаться. Вот полностью задача, которую мне надо решить: даны два файла (в первом файле написан текст, второй файл пустой). Программа открывает первый файл, считает колличество слов в первой строке и записывает это колличество во второй файл. Затем то же самое делает со второй строй, с третей, четвёртой и так до конца текста(т.е. до той строки на которой текст в первом файле заканчивается). Помогите пожалуйста её решить. Напишите полный код программы, если не трудно.
Офлайн
це і є повний код програми. запускати тра з консолі - зайти в папку з тим скриптом командою cd. i там написати: імя_програми.py < імя_файлу_з_стрічками.txt > імя_файлу_куда_потрібно_вивести_результат.txt
Офлайн
а можно сделать так чтоб файл открывался программой, т.е. функцией open.
Офлайн
можна :)
Отредактировано (Дек. 22, 2007 16:00:47)
Офлайн
=) А как?
Офлайн
out = file("result.txt", "w") out.write("\n".join(map(str,[len(filter(lambda y: y.strip(), s.split(" "))) for s in open("my_strings.txt")]))) out.close()
Офлайн