Как найти количество символов в каждой строке

В текстовом файле для каждой отдельной строки определить количество в ней символов.

Пример:

Hello world!
Привет мир!
One, two, three

Результат:

13 symbols.
12 symbols.
16 symbols.

Я понял как посчитать количество символов для всего файла, но не могу понять как это сделать для каждой строки.

Мой код:

f1 = open('text.txt', 'r')
data = f1.read()
number_of_ch = len(data)
print(number_of_ch)

GrAnd's user avatar

GrAnd

13.4k1 золотой знак8 серебряных знаков23 бронзовых знака

задан 31 дек 2021 в 8:40

DisplayedName's user avatar

  1. Открывайте файл в операторе with – важный навык аккуратного программирования.
  2. Файл в Питоне перебирается по строкам без дополнительных усилий.
  3. print выводит свои аргументы через пробел – простое форматирование в вашем случае.

Код:

# with open('text.txt', encoding='utf-8') as f:
# если вы хотите читать файл в кодировке UTF-8 на Windows
with open('text.txt') as f:
    for line in f:
        print(len(line), 'symbols.')

ответ дан 31 дек 2021 в 9:06

Stanislav Volodarskiy's user avatar

5

Сделайте не через метод read(), а через readlines().

Вот пример работы:

f1 = open('text.txt', 'r') # Открываем файл

for line in f1.readlines(): # Создаем цикл for. readlines() возвращает итератор.
    print(len(line)) # Печатаем длину каждой строки

SergFSM's user avatar

SergFSM

5,6501 золотой знак6 серебряных знаков17 бронзовых знаков

ответ дан 31 дек 2021 в 8:43

Никита's user avatar

НикитаНикита

8082 серебряных знака12 бронзовых знаков

2

Перейти к содержанию

Посчитать количество строк в файле и количество слов и символов в каждой строке

Просмотров 8к. Обновлено 15 октября 2021

В текстовом файле посчитать количество строк, а также для каждой отдельной строки определить количество в ней символов и слов.

Подсчет строк:
Ввести счетчик, присвоить ему 0.
Пока не будет достигнут конец файла, считывать очередную строку файла и увеличивать счетчик на 1.

Подсчет символов в строке:
Измерять длину очередной строки с помощью встроенный в язык программирования функции.

Подсчет слов в строке:

  1. Ввести счетчик слов и присвоить ему 0.
  2. Ввести флаговую переменную и присвоить ей 0 (сигнал нахождения вне слова).
  3. Пока не будет достигнут конец строки:
    1. Если очередной символ не пробел и флаг указывает на нахождение вне слова, то увеличить счетчик слов и присвоить флаговой переменной 1 (сигнал нахождения внутри слова).
    2. Если же очередной символ пробел, то присвоить флагу 0.

Pascal


var
f: text;
s: string;
line, chr, wrd: word;
i: byte;
flag: boolean;
begin
assign(f,'text.txt');
reset(f);
line := 0;
while not EOF(f) do begin
readln(f,s);
write(s, ' - ');

line := line + 1;

chr := length(s);
write(chr, ' симв., ');

wrd := 0;
flag := false;
for i:=1 to chr do
if (s[i] <> ' ') and (flag = false) then begin
wrd := wrd + 1;
flag := true;
end
else
if s[i] = ' ' then flag := false;
writeln(wrd, ' сл.');
end;
close(f);
writeln(line,' стр.');
end.



Hello world! - 12 симв., 2 сл.
Привет мир! - 20 симв., 2 сл.
One, two, three - 15 симв., 3 сл.
Один, два, три - 24 симв., 3 сл.
4 стр.

Файл выполнен в среде GNU/Linux, компилятор FreePascal. Русские символы считаются за 2 символа. Например, в данном примере во второй строке 9 кириллических символа, пробел и восклицательный знак: 18 + 2 = 20 символов.

Язык Си

посчитать количество строк в файле си


#include < stdio.h>
#include < string.h>
#define N 255
main() {
FILE *f;
char s[N];
unsigned short line, word, flag, i;
line = 0;
f = fopen("text.txt","r");
while (fgets(s, N, f) != NULL) {
line += 1;

word = 0;
flag = 0;
for (i=0; i < strlen(s); i++)
if (s[i] != ' ' && flag == 0) {
word += 1;
flag = 1;
} else
if (s[i] == ' ') flag = 0;

printf("%st%ld симв., %d сл.n",s,strlen(s),word);
}
printf("%d стр.n", line);
fclose(f);
}



Hello world!
13 симв., 2 сл.
Привет мир!
21 симв., 2 сл.
One, two, three
16 симв., 3 сл.
Один, два, три
25 симв., 3 сл.
4 стр.

Тот же “эффект”, что и в Паскале: кириллический символ считается за 2.

Функция fgets() считывает строку вместе с символом перехода на новую строку. Аргумент N не позволяет считать больше указанного количества символов, но длина строки определяется по количеству считанных (т.е. фактической длиной строки).

Python

python количество строк в файле


f = open('text.txt')
line = 0
for i in f:
line += 1

flag = 0
word = 0
for j in i:
if j != ' ' and flag == 0:
word += 1
flag = 1
elif j == ' ':
flag = 0

print(i,len(i),'симв.',word,'сл.')

print(line,'стр.')
f.close()



Hello world!
13 симв. 2 сл.
Привет мир!
12 симв. 2 сл.
One, two, three
16 симв. 3 сл.
Один, два, три
15 симв. 3 сл.
4 стр.

Символ перехода на новую строку учитывается.

КуМир


использовать Файлы П
алг
нач
цел f, line, word, char, in, i
лит s
line := 0
word := 0
char := 0
f := открыть на чтение ("текст.txt")
нц пока не конец файла (f)
Фввод f, s
line := line + 1
вывод s, нс
char := char + длин(s)
in := 0
нц для i от 1 до длин(s)
если s[i] <> " " и in = 0 то
word := word + 1
in := 1
иначе
если s[i] = " " то in := 0 все
все
кц
кц
закрыть(f)
вывод нс, "строк - ", line, нс
вывод "слов - ", word, нс
вывод "символов - ", char
кон



Привет, Мир!
Hello World!
5, 4 ...

строк - 3
слов - 7
символов - 32

Здесь считается общее количество слов и символов.

Basic-256


open "text.txt"
ln = 0
while not eof
ln = ln + 1
s$ = readline
i = 1
word = 0
flag = 0
while i <= length(s$)
c$ = mid(s$,i,1)
if c$ <> " " and flag = 0 then
word = word + 1
flag = 1
else
if c$ = " " then flag = 0
endif
i = i + 1
endwhile

print s$ + length(s$) + ", " + word
endwhile
close

print "Строк: " + ln



Hello world!
13, 2
Привет мир!
12, 2
One, two, three
16, 3
Один, два, три
15, 3
Строк: 4

Переход на новую строку учитывается как символ.

0 / 0 / 0

Регистрация: 07.12.2021

Сообщений: 31

1

Подсчитать количество символов в каждой строке файла

07.12.2021, 08:55. Показов 1567. Ответов 15


Студворк — интернет-сервис помощи студентам

Здравствуйте, задача довольно простая, но запутался окончательно в циклах.
Задача:
Вывести содержимое файла 1.txt хранимого на диске С в папке 100. Подсчитать количество символов в каждой строке.
Файл создал, мне нужно лишь подсчитать кол-во символов, но обязательно каждой строки.
Допустим: количество символов “1” строки столько-то, “2” строки столько-то и т.д.
Желательно реализовать простыми циклами, к функциям прибегать не разрешают.



0



Нарушитель

8579 / 4584 / 1057

Регистрация: 12.03.2015

Сообщений: 21,487

07.12.2021, 09:32

2

Цитата
Сообщение от No name_12
Посмотреть сообщение

к функциям прибегать не разрешают.

Кликните здесь для просмотра всего текста

Почему???



0



0 / 0 / 0

Регистрация: 07.12.2021

Сообщений: 31

07.12.2021, 09:34

 [ТС]

3

Чтобы научиться работать с циклами for while и т.д.



0



Нарушитель

8579 / 4584 / 1057

Регистрация: 12.03.2015

Сообщений: 21,487

07.12.2021, 09:36

4

Цитата
Сообщение от No name_12
Посмотреть сообщение

Чтобы научиться работать с циклами for while и т.д.

А файл-то как открыть/читать/закрыть без вызова соответствующих функций/методов?



0



0 / 0 / 0

Регистрация: 07.12.2021

Сообщений: 31

07.12.2021, 09:38

 [ТС]

5

Наверное я выразился не так, всё делается в консоли, то есть мы там записываем текст, он там производит эти вычисления, и закрывает консоль, а уже в текстовый файл вносится тот текст.



0



Нарушитель

8579 / 4584 / 1057

Регистрация: 12.03.2015

Сообщений: 21,487

07.12.2021, 09:40

6

Цитата
Сообщение от No name_12
Посмотреть сообщение

Наверное я выразился не так, всё делается в консоли, то есть мы там записываем текст, он там производит эти вычисления, и закрывает консоль, а уже в текстовый файл вносится тот текст.

Ну и как файл-то создать/писать/закрыть без функций?



0



0 / 0 / 0

Регистрация: 07.12.2021

Сообщений: 31

07.12.2021, 09:42

 [ТС]

7

Я имел ввиду по типу length, то есть готовые функции, которые считают кол-во строк и т.д., в остальном конечно можно использовать



0



Нарушитель

8579 / 4584 / 1057

Регистрация: 12.03.2015

Сообщений: 21,487

07.12.2021, 09:44

8

Цитата
Сообщение от No name_12
Посмотреть сообщение

Я имел ввиду по типу length, то есть готовые функции, которые считают кол-во строк и т.д., в остальном конечно можно использовать

Не понял. То есть функции использовать можно, но не все?
Покаж оригинал задания.



0



0 / 0 / 0

Регистрация: 07.12.2021

Сообщений: 31

07.12.2021, 09:45

 [ТС]

9

Да, т.е. именно что касается счёта строк и количество символов в них, там нужно циклом накапливать и выводить, в остальном функции можно использовать



0



0 / 0 / 0

Регистрация: 07.12.2021

Сообщений: 31

07.12.2021, 09:47

 [ТС]

10

Вот

Миниатюры

Подсчитать количество символов в каждой строке файла
 



0



0 / 0 / 0

Регистрация: 07.12.2021

Сообщений: 31

07.12.2021, 09:50

 [ТС]

11

То что сделал вот, но тут считается количество строк, а мне нужно количество символов в каждой строке

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
char st[100];
int k = 0;
using namespace std;
ofstream outf(“c:\100\1.txt”);
cout << “Вводите данные в файл: ” << endl;
if (!outf)
{
cout << “Не могу открыть файл!” << endl;
exit(1);
}
while (true)
{
gets_s(st);
if (st[0] == ‘n’) break;
k++;
outf << st << endl;
}
cout << “Количество символов “<< k << “строки = “<< endl;
return 0;
}



0



Нарушитель

8579 / 4584 / 1057

Регистрация: 12.03.2015

Сообщений: 21,487

07.12.2021, 10:01

12

Цитата
Сообщение от No name_12
Посмотреть сообщение

То что сделал вот, но тут считается количество строк, а мне нужно количество символов в каждой строке

Строки надо из файла ЧИТАТЬ. По условию задачи.

Подсчитать количество символов в каждой строке файла



0



0 / 0 / 0

Регистрация: 07.12.2021

Сообщений: 31

07.12.2021, 10:02

 [ТС]

13

Ах да, ступил…



0



Нарушитель

8579 / 4584 / 1057

Регистрация: 12.03.2015

Сообщений: 21,487

07.12.2021, 10:04

14

Цитата
Сообщение от No name_12
Посмотреть сообщение

Ах да, ступил…

Бывает.

Кликните здесь для просмотра всего текста



0



0 / 0 / 0

Регистрация: 07.12.2021

Сообщений: 31

07.12.2021, 10:05

 [ТС]

15

Но реализация по сути примерно такая же? именно процесс высчитывания кол-ва символов в каждой строке?



0



Нарушитель

8579 / 4584 / 1057

Регистрация: 12.03.2015

Сообщений: 21,487

07.12.2021, 10:17

16

Цитата
Сообщение от No name_12
Посмотреть сообщение

Но реализация по сути примерно такая же? именно процесс высчитывания кол-ва символов в каждой строке?

Не знаю.
Я не читаю чужие исходники, выложенные в таком виде.

Добавлено через 9 минут
Кстати, в задании нет никаких ограничений на использование функций.



0



Обложка к записи "Подсчёт символов в строке Python"

На чтение 3 мин Просмотров 6.2к. Опубликовано

В этой статье мы рассмотрим один из базовых навыков программирования на языке Python — подсчет количества символов в строке. Этот навык часто используется при работе с текстовыми данными, поэтому является необходимым для начинающих и опытных программистов.

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

  • Проверка ограничений на длину вводимого текста в веб-формах, где ограничено количество символов, которые можно ввести в определенное поле.
  • Подсчет количества букв или цифр в тексте для анализа текстовых данных или статистики.
  • Анализ и обработка текстовых файлов.

Содержание

  1. Основные способы подсчёта символов в строке
  2. Подсчёт символов в строке с помощью встроенной функции len()
  3. Ручной подсчет символов с помощью цикла

Основные способы подсчёта символов в строке

В Python существует несколько способов подсчета количества символов в строке. Один из самых простых и распространенных способов — использование функции len(), которая возвращает количество символов в строке. Этот метод может использоваться для подсчета любых символов, включая буквы, цифры, знаки препинания и пробелы. Кроме того, для подсчета символов в строке, можно использовать циклы.

Подсчёт символов в строке с помощью встроенной функции len()

В Python есть встроенная функция len(), которая позволяет узнать длину строки, т.е. количество символов в ней. Функция len() принимает аргументом строку и возвращает целое число, равное количеству символов в этой строке. Для того чтобы использовать функцию len() для подсчета символов в строке, необходимо передать в качестве аргумента эту строку. Например, если у вас есть переменная my_string и вы хотите узнать, сколько символов содержится в этой строке, то вы можете вызвать функцию len(my_string), и она вернет число, равное количеству символов в my_string.

Рассмотрим пример:

my_string = "Hello, World!"
length = len(my_string)
print("Длина строки: ", length)

В этом примере мы создали переменную my_string, содержащую строку «Hello, World!», а затем использовали функцию len() для подсчета количества символов в этой строке. Результат, возвращаемый функцией len(), присваивается переменной length. Наконец, мы выводим сообщение на экран, которое сообщает нам длину строки. В этом случае, результатом будет «Длина строки: 13», так как в строке «Hello, World!» содержится 13 символов.

Ручной подсчет символов с помощью цикла

Если вам нужно подсчитать количество символов в строке без использования встроенных функций, вы можете воспользоваться циклом. Для этого можно создать переменную, которая будет увеличиваться на единицу при каждой итерации цикла. Внутри цикла нужно пройтись по каждому символу строки и увеличивать значение переменной на единицу. В конце цикла значение переменной будет равно количеству символов в строке. Например, для строки «Hello, world!» можно использовать следующий код:

string = "Hello, world!"
count = 0
for char in string:
    count += 1
print("Количество символов в строке:", count)

Этот код пройдется по каждому символу в строке «Hello, world!» и увеличит значение переменной count на единицу при каждой итерации цикла. После того, как цикл завершится, в переменной count будет храниться количество символов в строке.

( 1 оценка, среднее 2 из 5 )

Теги: python, питон, поиск, строка, пайтон, длина

В некоторых случаях при работе со строками в Python нам необходимо определить длину строки. Сделать это можно несколькими способами, а какими — мы сейчас и узнаем.

Python_Pro_970x90-20219-1c8674.png

Итак, в языке программирования Python строки относят к категории неизменяемых последовательностей, что необходимо помнить при вызове методов и функций. Теперь давайте представим, что у нас есть строка, и нам требуется найти её длину:


Сделать это можно несколькими способами.

Определяем длину строки в Python: способ № 1

Начнём с общеизвестного и наиболее популярного — использования функции len(). Эта встроенная функция возвращает количество символов в исследуемой нами строке, определяя таким образом её длину. Тут всё элементарно, и вы можете проверить код ниже на любом онлайн-компиляторе:

# Находим длину строки в Python с помощью функции len()
str = 'otus'
print(len(str)) 

Итогом работы функции станет следующий вывод в терминал:


Ищем длину строки в «Питоне»: способ № 2

Чтобы подсчитать количество символов в строке Python, мы можем воспользоваться циклом for и счётчиком. Тут тоже всё просто, т. к. определение длины происходит путём подсчёта числа итераций.

# Python-код возвращает длину строки
def findLen(str):
    counter = 0    
    for i in str:
        counter += 1
    return counter
str = "otus"
print(findLen(str))

Соответственно, наш вывод в консоли тоже будет равен 4.

Поиск длины строки в Python: способ № 3

Теперь давайте воспользуемся циклом while. Мы «нарежем» строку, укорачивая её на каждой итерации, в результате чего получим пустую строку и остановку цикла. А подсчёт количества итераций снова позволит нам вывести в терминал искомую длину.

# Python-код, возвращающий длину строки
def findLen(str):
    counter = 0
    while str[counter:]:
        counter += 1
    return counter

str = "otus"
print(findLen(str))

Находим длину строки в Python: способ № 4

Теперь воспользуемся строковым методом объединения. Он принимает итеративный элемент, возвращая строку, являющуюся объединением строк в итерируемом нами элементе. Разделитель между элементами — исходная строка, для которой и вызывается метод. Применение метода объединения с последующим подсчётом объединённой строки в исходной строке тоже позволит нам получить длину строки на «Питоне».

# Python-код, возвращающий длину строки
def findLen(str):
    if not str:
        return 0
    else:
        some_random_str = 'py'
        return ((some_random_str).join(str)).count(some_random_str) + 1
str = "otus"
print(findLen(str))

Как и во всех примерах выше, в консоль выведется количество символов в строе ‘otus’, равное 4. Вот и всё!

Материал написан на основе статьи — “Find length of a string in python (4 ways)”.

Хотите знать про Python гораздо больше? Записывайтесь на наш курс для продвинутых разработчиков:

Python_Pro_970x550-20219-0846c7.png

Добавить комментарий