Программа сколько слов в строке

Неверно, потому что «How» и «how» — лишь одинаковые слова по смыслу, но разные по написанию, соответственно, эти строки не равны друг другу. Поэтому интерпретатор считает, что w in text это False , и инкрементирования переменной r не происходит (она не увеличивается на 1 ).

P.S. Вы можете использовать встроенные функции .lower() или .upper() , чтобы регистр обрабатываемых вами строк был единым.

Отслеживать
ответ дан 18 авг 2016 в 15:13
approximatenumber approximatenumber
1,487 10 10 серебряных знаков 25 25 бронзовых знаков
Действительно это так. Спасибо!
18 авг 2016 в 15:20

19 авг 2016 в 21:25

В коде две проблемы:

  1. уже упомянутая проблема с регистром, которую можно исправить, используя str.casefold()
  2. w in text ищет подстроки, а не слова. Следует разбить текст на слова (зависит от задачи, что является словом, например: «любая группа символов, несодержащая пробелы» или «любая группа символов, принадлежащих w классу (Unicode word characters)».

Чтобы подсчитать сколько из заданных (уникальных) слов присутствует в заданном тексте (используя сравнение без учёта регистра):

Как подсчитать количество слов в строке на C#?

Читайте также:
Что может программа teamviewer


#!/usr/bin/env python3 import re def count_words(text, words): text_words = set(re.findall(r’w+’, text.casefold())) return sum(w in text_words for w in set(map(str.casefold, words))) print(count_words(«How aresjfhdskfhskd you?», )) # -> 2

Результат 2 , а не 3 потому что ‘aresjfhdskfhskd’ != ‘are’ .

Если хочется считать именно подстроки, вместо отдельных слов:

#!/usr/bin/env python3 def count_substr(text, substrs): text = text.casefold() return sum(s in text for s in set(map(str.casefold, substrs))) print(count_substr(«How aresjfhdskfhskd you?», )) # -> 3

set() используется, чтобы не считать повторяющиеся строки несколько раз.

Источник: ru.stackoverflow.com

4 Надежных способа Подсчета Слов в строке в Python

В python для подсчета слов в строке мы можем использовать функцию split (), а также функцию count и цикл for.

Строки являются основными типами данных в любом языке программирования, включая python. Нам нужно выполнить множество различных операций, также известных как предварительная обработка строк, таких как удаление ненужных пробелов, подсчет слов в строке, создание строки в одних и тех же случаях (прописных или строчных). В этой статье мы узнаем, как считать слова в строке в python.

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » Количество слов в строке

#1 Дек. 17, 2012 18:56:16

Количество слов в строке

Всем добрый вечер.

Программа на Python , высчитывающая количество пробелов,символов,слов в тексте.


Подскажите, пожалуйста, как можно узнать кол-во слов в строке?
что писать после

for line in f: words += line.split() f.close() number_of_words = » for i in words:
?
если конкретизировать, то нужно количество строк, где меньше 10 слов.

Отредактировано Kato (Дек. 17, 2012 19:21:11)

#2 Дек. 17, 2012 20:01:28

Количество слов в строке

скажите, плз, будет ли это работать правильно?

for i in line: for j in words: if len(words) 10: n += 1

Читайте также:
Как установить программу зип на компьютер

#3 Дек. 17, 2012 21:03:10

Количество слов в строке

Kato
будет ли это работать правильно

А что вам питон говорит? Или вы ему не верите?
1 программа некорректна — не определен words
2 будет она правильно работать или нет можно решить только когда вы скажете чего она должна делать
3 количество слов в line можно определить так:

len(line.split())
Но все конечно зависит от вашего определения слова.

#4 Дек. 17, 2012 21:53:39

Количество слов в строке

ну я так понимаю человек читает из файла строки? readline не подойдет для построчного подсчета?

#5 Дек. 18, 2012 20:23:52

Количество слов в строке

нет,он открывает заданный файл(к примеру, содержащий текст параграфа из какого-то учебника), и потом выдает, сколько в нем строк, содержащих меньше 10 слов. по-мне, так он какое-то астрономическое число выдал- там текст на 1 параграф, выдает, что таких строк около 6к

#6 Дек. 19, 2012 07:42:25

Количество слов в строке

print(‘<>’.format( (lambda f=open(‘/home/sergeek/ff/python3.2-3.2.2/README’): (len (filter(lambda l: len(l) 10, map(lambda l: l.split(), iter(f.readline,»))))))()))

#7 Дек. 19, 2012 22:54:49

Количество слов в строке

sergeek, реквестирую разъяснение кода))) Можно было наваять все с одним списком + парой циклов + условие-if.. Но, у вас что-то нечто крутое, и я тоже хочу до такого уровня скилл прокачать 🙂

#8 Дек. 20, 2012 07:56:31

Количество слов в строке

  • iter возвращает итератор, элементы которого являются строками файла
  • map возращает список (тут для 2.7) являющийся результатом применения метода split для каждого элемента этого итератора
  • filter возращает список, отфильтрованный по условию брать элементы с длиной меньше 10
  • len считает длину этого списка, которая и является искомой величиной
  • верхняя лямбда, просто чтобы сделать однострочник, она вызывается сразу после объявления
Читайте также:
Mxl чем открыть программа

#9 Дек. 13, 2018 19:18:12

Количество слов в строке

Всем привет! Я новобранец на этом форуме, начал осваивать Python пару дней назад 🙂
По задаче:

Подскажите, пожалуйста, как можно узнать кол-во слов в строке?

f = open(‘C:\Users\ASUS\Desktop\For_Test.txt’, ‘r’) str = f.read() f.close() val = (len(str.split())) print(val)

По сути это вариант от doza_and, но я делал не подсматривая в ответы, чесслово Если в split не передавать параметров, то любая пробельная строка (пробел, новая строка и т.д.) считается разделителем. В явном виде можно в функцию split передать параметр “ ” (т.е. пробел), а к конечному результату прибавить 1.
Но в таком случае к тексту нужно предъявлять требования, чтоб не было двойных-тройных пробелов, слова отделялись одним пробелом, после знака препинания так же ставить один пробел.
Если у Вас исходный текст никак не отформатирован — то следует вначале поработать с ним(в том числе учитывать — являются ли числовые значения словами, например даты).

#Python начинаю осваивать

Отредактировано Mambet (Дек. 13, 2018 19:19:50)

Источник: python.su

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru