Как посчитать количество букв в слове python

Как посчитать количество букв в слове python

Программа считает количество строк, слов и букв в переданном ей файле.

Имя файла должно передаваться в качестве первого аргумента после имени самого скрипта. Например, вызов скрипта в Linux через командную оболочку выглядит примерно так:

Пример выполнения скрипта в командной оболочке bash

Вводится строка, состоящая из слов, разделенных пробелами. Требуется посчитать количество слов в ней.

  1. Введем счетчик слов и переменную-флаг, сигнализирующую, находимся ли мы внутри слова или нет.
  2. Если очередной символ не пробел, и флаг показывает, что мы не внутри слова, то следует увеличить переменную-счетчик слов и изменить флаг.
  3. Иначе если текущий символ пробел, то установить флаг в значение "вне слова". (Когда символ не пробел, и мы находимся внутри слова, то ничего делать не надо.)

main ( ) <
char str [ 255 ] ;
int i , count , flag ;
gets ( str ) ;
count = 0 ;
flag = 0 ;
for ( i = 0 ; str [ i ] != ‘ ‘ ; i ++ )
if ( str [ i ] != ‘ ‘ && flag == 0 ) <
count += 1 ;
flag = 1 ;
> else
if ( str [ i ] == ‘ ‘ ) flag = 0 ;
printf ( "%d
" , count ) ;
>

# 1-й вариант ("классический"):

s = input ( )
count = 0
flag = 0
for i in range ( len ( s ) ) :
if s [ i ] != ‘ ‘ and flag == 0 :
count + = 1
flag = 1
else :
if s [ i ] == ‘ ‘ :
flag = 0
print ( count )

# 2-й вариант (через преобразование в список):

s = input ( )
s = s. split ( )
l = len ( s )
print ( l )

Метод split() разбивает строку по пробелам (по умолчанию) или символам, которые передаются как аргументы. Возвращает список.

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

Работает правильно. Вопрос вот в чем: можно ли сделать то же самое проще (например, меньше строк кода) на Python, Bash, PHP, Perl или это лучший способ?

Читайте также:  Как разложить сиденья в

7 Answers

Скрипт на bash/awk, для коллекции:

Подсчёт частоты слов с поддержкой Unicode ( .casefold() , w+ ):

  • текст, в кодировке из локали, задаётся из файлов, указанных в командной строке, или со стандартного ввода (если не указаны)
  • слова выводятся в порядке убывания популярности
  • кодировка для вывода может отличаться от кодировки на входе
  • выводит построчно, с указанным в вопросе форматированием (ширина под слово — 32 символа)

Вот версия, близкая к поведению Питон 2 кода из вопроса:

  • читает байты из файла, переводит их в нижний регистр, разбивает на слова по стандартному пробелу (не поддерживает Unicode)
  • удаляет ascii пунктуацию из каждого слова (может пустая строка остаться)
  • считает получившиеся слова, сортирует их по величине байт
  • выводит построчно, с указанным в вопросе форматированием (ширина под слово — 32 байта)

Два примера разный вывод генерируют как правило.

Ссылка на основную публикацию
Как получить секретный значок в стиме
Значки в Steam, в первую очередь, нужны для того, чтобы украсить свою страницу и показать всем пользователям, каких достижений вы...
Как перерисовывать электрические схемы
Целью преобразования электрических цепей является их упрощение, это необходимо для простоты и удобства расчета. Одним из основных видов преобразования электрических...
Как получать смс на ipad с сим
Несмотря на то, что штатное программное обеспечение мобильного Apple-девайса не предусматривает возможность отправки SMS на мобильные номера с iPad или...
Как поменять канал wifi на роутере ростелеком
Практически во всех статьях и инструкциях на тем проблем с WiFi один из основных советов - поменять канал на роутере....
Adblock detector