Содержание

Сумма и произведение цифр числа. Решение задачи на Python

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

Дано число. Найти сумму и произведение его цифр.

Например, сумма цифр числа 253 равна 10-ти, так как 2 + 5 + 3 = 10. Произведение цифр числа 253 равно 30-ти, так как 2 * 5 * 3 = 30.

Обычно предполагается, что данная задача должна быть решена арифметическим способом. То есть с заданным число должны производиться определенные арифметические действия, позволяющие извлечь из него все цифры, затем сложить их и перемножить.

При этом используются операции деления нацело и нахождения остатка. Если число разделить нацело на 10, произойдет «потеря» последней цифры числа. Например, 253 ÷ 10 = 25 (остаток 3). С другой стороны, эта потерянная цифра есть остаток от деления. Получив эту цифру, мы можем добавить ее к сумме цифр и умножить на нее произведение цифр числа.

Пусть n – само число, suma – сумма его цифр, а mult – произведение. Тогда алгоритм нахождения суммы и произведения цифр можно словесно описать так:

  1. Переменной suma присвоить ноль.
  2. Переменной mult присвоить единицу. Присваивать 0 нельзя, так как при умножении на ноль результат будет нулевым.
  3. Пока значение переменной n больше нуля повторять следующие действия:
    1. Найти остаток от деления значения n на 10, то есть извлечь последнюю цифру числа.
    2. Добавить извлеченную цифру к сумме и увеличить на эту цифру произведение.
    3. Избавиться от последнего разряда числа n путем деления нацело на 10.

В языке Python операция нахождения остатка от деления обозначается знаком процента — %. Деление нацело — двумя слэшами — //.

Код программы на языке Python

n = int(input())
 
suma = 0
mult = 1
 
while n > 0:
    digit = n % 10
    suma = suma + digit
    mult = mult * digit
    n = n // 10
 
print("Сумма:", suma)
print("Произведение:", mult)

Пример выполнения:

253
Сумма: 10
Произведение: 30

Изменение значений переменных можно записать в сокращенном виде:

...
while n > 0:
    digit = n % 10
    suma += digit
    mult *= digit
    n //= 10
...

Приведенная выше программа подходит только для нахождения суммы и произведения цифр натуральных чисел, то есть целых чисел больше нуля. Если исходное число может быть любым целым, следует учесть обработку отрицательных чисел и нуля.

Если число отрицательное, это не влияет на сумму его цифр. В таком случае достаточно будет использовать встроенную в Python функции abc, которая возвращает абсолютное значение переданного ей аргумента. Она превратит отрицательное число в положительное, и цикл

while с его условием n > 0 будет работать как и прежде.

Если число равно нулю, то по логике вещей сумма его цифр и их произведение должны иметь нулевые значения. Цикл срабатывать не будет. Поскольку исходное значение mult — это 1, следует добавить проверку на случай, если заданное число — это ноль.

Программа, обрабатывающая все целые числа, может начинаться так:

n = abs(int(input()))
 
suma = 0
mult = 1
if n == 0:
    mult = 0
...

Заметим, если в самом числе встречается цифра 0 (например, 503), то произведение всех цифр будет равно нулю. Усложним задачу:

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

Для решения такой задачи в цикл добавляется проверка извлеченной цифры на ее неравенство нулю. Делать это надо до умножения на нее значения переменной-произведения.

n = int(input())
 
suma = 0
mult = 1
 
while n > 0:
    digit = n % 10
    if digit != 0:  
        suma += digit
        mult *= digit
    n = n // 10
 
print("Сумма:", suma)
print("Произведение:", mult)

Обратим внимание, что заголовок условного оператора if digit != 0:

в Python можно сократить до просто if digit:. Потому что 0 — это False. Все остальные числа считаются истиной.

Приведенный выше математический алгоритм нахождения суммы и произведения цифр числа можно назвать классическим, или универсальным. Подобным способом задачу можно решить на всех императивных языках, независимо от богатства их инструментария. Однако средства языка программирования могут позволить решить задачу другим, зачастую более простым, путем. Например, в Python можно не преобразовывать введенную строку к числу, а извлекать из нее отдельные символы, которые преобразовывать к целочисленному типу

int:

a = input()
 
suma = 0
mult = 1
 
for digit in a:
    suma += int(digit)
    mult *= int(digit)
 
print("Сумма:", suma)
print("Произведение:", mult)

Если добавить в код проверку, что извлеченный символ строки действительно является цифрой, то программа станет более универсальной. С ее помощью можно будет считать не только сумму и произведение цифр целых чисел, но и вещественных, а также цифр, извлекаемых из произвольной строки.

n = input()
 
suma = 0
mult = 1
 
for digit in n:
    if digit.isdigit():
        suma += int(digit)
        mult *= int(digit)
 
print("Сумма:", suma)
print("Произведение:", mult)

Пример выполнения:

это3 чи3с9ло!
Сумма: 15
Произведение: 81

Строковый метод isdigit проверяет, состоит ли строка только из цифр. В нашем случае роль строки играет одиночный, извлеченный на текущей итерации цикла, символ.

Глубокое знание языка Python позволяет решить задачу более экзотическими способами:

import functools
 
n = input()
n = [int(digit) for digit in n]
 
suma = sum(n)
mult = functools.reduce(lambda x, y: x*y, n)
 
print("Сумма:", suma)
print("Произведение:", mult)

Выражение [int(digit) for digit in n]

представляет собой генератор списка. Если была введена строка "234", будет получен список чисел: [2, 3, 4].

Встроенная функция sum считает сумму элементов переданного ей аргумента.

Функция reduce модуля functools принимает два аргумента — лямбда-выражение и в данном случае список. Здесь в переменной x происходит накопление произведения, а y принимает каждое следующее значение списка.

Больше задач в PDF


Четыре способа найти длину строки в Python

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

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

Input: 'otus'
Output: 4

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

Определяем длину строки в 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 гораздо больше? Записывайтесь на наш курс для продвинутых разработчиков:

Подсчет количества символов в строке с помощью Visual Basic (VB.NET) — Codebun

В этой программе Visual Basic давайте создадим простое приложение Visual Basic для подсчета общего количества символов во входной строке.

Подсчет количества символов в строке в VB.NET

Создадим форму с полем ввода и кнопкой. и когда пользователь вводит какую-либо строку или текст во ввод или текстовое поле и нажимает кнопку для подсчета символов, тогда он будет подсчитывать длину строки и отображать ее в окне сообщения, тогда мы должны следовать этому.

Дизайн формы:

Открыть ваш Visual Studio > Создать A Новый проект В Visual Basic > В Form1 взять строку изменить его строку 3 на строку 90 Textbox 90 и изменить одно свойство text4 input 3 строка 0 строка и одна кнопка , которая будет отображать окно сообщения, в котором будет показано общее количество символов в строке.

Теперь дважды щелкните элемент управления Button1 и напишите там приведенный ниже код.

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Обрабатывает Button1.Click
        Dim strLength As String = TextBox1.Text
        MessageBox.Show("Количество символов: " & strLength.Length.ToString)
    End Sub 

Сначала мы объявили переменную как строку, которая будет принимать ввод текстового поля, и мы назвали ее strLength. Затем мы дали окно сообщения в разделе кода, которое будет отображать общее количество символов входной строки из текстового поля. Переменная strLength возвращает количество атрибутов для элемента текстового поля с помощью свойства ToString , а также подсчитывает значения пробелов в строке.

Вывод:

Подсчет количества символов в строке без пробела в Visual Basic(Vb)

Для этого создадим приложение, в котором на форме возьмем одно поле ввода и кнопку. и когда пользователь вводит какую-либо строку или текст во ввод или текстовое поле и нажимает кнопку для подсчета символов, тогда он будет считать длину строки без пробелов и отображать результат в окне сообщения, тогда мы должны следовать этому.

Дизайн формы:

Открыть ваш Visual studio > Создать A Новый проект В Visual Basic > На Form1 взять одно текстовое поле multi 4 строка 900 изменить его свойство на 9003 одна кнопка назовите кнопку Count Characters.

 

Теперь дважды щелкните кнопку Button1 и напишите там приведенный ниже код.

 Форма класса 1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Обрабатывает Button1.Click
        Затемнение триммеров As String = TextBox1.Text
        trimspaces = trimspaces. Replace(" ", "")
        Если TextBox1.Text = "" Тогда
            MessageBox.Show("Пожалуйста, введите текст")
            Текстовое поле1.Фокус()
        Еще
            MessageBox.Show("количество символов: " & trimspaces.Length)
        Конец, если
    Конец сабвуфера
Конец класса 

Свойство .length используется для подсчета количества символов в строке, и здесь мы используем пробелов обрезки. Замените функцию , в которой мы удаляем или заменяем пробелы, строкой кода («»»,») . С помощью этой программы в vb.net она заменит пробелы в строке, а затем подсчитает нет. символов с . длина() . Это позволяет пользователю вводить текст и считать его символы без учета пробелов.

Выход:

Запустите приложение. когда мы не вводим текст и нажимаем кнопку, он показывает вывод, как показано ниже.

Когда мы вводим любой текст, а затем нажимаем кнопку, он покажет вывод, как показано на рисунке ниже.

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

Таким образом, мы можем создавать программы для подсчета символов во входной строке с пробелом и без пробела в VB.NET.

Подсчет вхождений каждого символа в строке в Python

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

Содержание

  1. Использование цикла For и функции set() для подсчета вхождений каждого символа в строку
  2. Подсчет вхождений каждого символа в строку с использованием метода count() в Python
  3. Использование словаря Python для подсчета вхождений каждого символа в строку
  4. Подсчет вхождений каждого символа в строку с помощью функции collections.Counter()
  5. Использование Collections.defaultdict()
  6. Заключение

Использование цикла For и функции set() для подсчета вхождений каждого символа в строке

Мы можем использовать цикл for и

0133 set() Функция для подсчета вхождений каждого символа в строке в Python. Для этого мы будем использовать следующие шаги.

  • Сначала мы создадим набор всех символов, присутствующих во входной строке. Для этого мы будем использовать функцию set() . Функция set() принимает итерируемый объект в качестве входного аргумента и возвращает набор всех элементов итерируемого объекта.
  • После создания набора символов мы будем использовать вложенные циклы for для подсчета вхождений каждого символа в строку.
  • Во внешнем цикле for мы будем перебирать элементы набора. Внутри цикла for мы определим переменную countOfChar и инициализируем ее значением 0.
  • Затем мы будем перебирать входную строку, используя другой цикл for.
  • Внутри внутреннего цикла for, если мы найдем текущий символ набора в строке, мы увеличим countOfChar на 1. В противном случае мы перейдем к следующему символу в строке.
  • После выполнения внутреннего цикла for мы получим количество одного символа. Мы напечатаем его, используя оператор печати. Затем мы перейдем к следующему символу в наборе, используя внешний цикл for.

После выполнения цикла for будет напечатано количество вхождений каждого символа в строку. Вы можете наблюдать это на следующем примере.

 input_string = "Pythonforbeginners — отличный источник для начала работы с Python."
print("Входная строка:", input_string)
мой набор = набор (входная_строка)
для элемента в mySet:
    количество символов = 0
    для символа в input_string:
        если символ == элемент:
            количество символов += 1
    print("Количество символов '{}' равно {}".format(element, countOfChar)) 

Вывод:

 Входная строка: Pythonforbeginners — отличный источник для начала работы с Python.
Количество символов 'o' равно 5
Количество символов «а» равно 3
Количество символов 'c' равно 1
Количество символов 'e' равно 6
Количество символов 'd' равно 1
Количество символов 't' равно 8
Количество символов 'r' равно 5
Количество символов 'y' равно 2
Количество символов 'n' равно 4
Количество символов 'u' равно 1
Количество символов 's' равно 4
Количество символов 'g' равно 3
Количество символов 'w' равно 1
Количество символов '. ' 1
Количество символов 'h' равно 3
Количество символов '' равно 9Количество символов 'P' равно 2
Количество символов 'b' равно 1
Количество символов «i» равно 3
Количество символов «f» равно 1 

. Если вы хотите сохранить частоты символов, вы можете использовать словарь Python. Для хранения частот мы сначала создадим пустой словарь с именем countOfChars .

После подсчета количества символов мы добавим символ в качестве ключа и количество в качестве значения в словарь. Вы можете наблюдать это в следующем коде.

 input_string = "Pythonforbeginners — отличный источник для начала работы с Python."
print("Входная строка:", input_string)
мой набор = набор (входная_строка)
количество символов = дикт()
для элемента в mySet:
    количество символов = 0
    для символа в input_string:
        если символ == элемент:
            количество символов += 1
    countOfChar[элемент] = countOfChar
print("Количество символов:")
print(countOfChars) 

Вывод:

 Входная строка: Pythonforbeginners — отличный источник для начала работы с Python. 
Количество символов:
{'s': 4, 'P': 2, 'b': 1, '.': 1, 'd': 1, 'c': 1, 'g': 3, 'r': 5, ' i': 3, 'o': 5, 'u': 1, 'a': 3, 'f': 1, 'e': 6, 'n': 4, 'y': 2, '': 9, 'w': 1, 't': 8, 'h': 3} 

Подсчет вхождений каждого символа в строку с использованием метода count() в Python

Метод count() в строке используется для подсчета частоты символа в строке. При вызове строки метод count() принимает символ в качестве входного аргумента. После выполнения он возвращает частоту символа, указанного в качестве входного аргумента.

Для подсчета вхождений каждого символа в строку с помощью count() , мы будем использовать следующие шаги.

  • Сначала мы создадим набор символов во входной строке с помощью функции set() .
  • После этого мы будем перебирать элементы набора с помощью цикла for.
  • Внутри цикла for мы вызовем метод count() для входной строки с текущим элементом набора в качестве входного аргумента. После выполнения метод count() вернет количество вхождений текущего элемента набора. Мы напечатаем значение, используя оператор печати.

После выполнения цикла for будет напечатана частота всех символов. Вы можете наблюдать это на следующем примере.

 input_string = "Pythonforbeginners — отличный источник для начала работы с Python."
print("Входная строка:", input_string)
мой набор = набор (входная_строка)
количество символов = дикт()
для элемента в mySet:
    countOfChar = input_string.count(элемент)
    countOfChar[элемент] = countOfChar
    print("Количество символов '{}' равно {}".format(element, countOfChar)) 

Вывод:

 Входная строка: Pythonforbeginners — отличный источник для начала работы с Python.
Количество символов 'e' равно 6
Количество символов 'n' равно 4
Количество символов «а» равно 3
Количество символов '.' 1
Количество символов 'h' равно 3
Количество символов 'r' равно 5
Количество символов 'f' равно 1
Количество символов 'y' равно 2
Количество символов 's' равно 4
Количество символов 't' равно 8
Количество символов 'w' равно 1
Количество символов «i» равно 3
Количество символов 'd' равно 1
Количество символов 'g' равно 3
Количество символов 'u' равно 1
Количество символов 'c' равно 1
Количество символов 'o' равно 5
Количество символов 'P' равно 2
Количество символов 'b' равно 1
Количество символов '' равно 9

Вы также можете сохранить частоту символов в словаре, как показано ниже.

 input_string = "Pythonforbeginners — отличный источник для начала работы с Python."
print("Входная строка:", input_string)
мой набор = набор (входная_строка)
количество символов = дикт()
для элемента в mySet:
    countOfChar = input_string.count(элемент)
    countOfChar[элемент] = countOfChar
print("Количество символов:")
print(countOfChars) 

Вывод:

 Входная строка: Pythonforbeginners — отличный источник для начала работы с Python.
Количество символов:
{'t': 8, 'o': 5, 'P': 2, 'n': 4, 'f': 1, 'e': 6, 'g': 3, 'c': 1, ' .': 1, 's': 4, 'w': 1, 'y': 2, ' ': 9, 'u': 1, 'i': 3, 'd': 1, 'a': 3, 'h': 3, 'r': 5, 'b': 1} 

Приведенные выше подходы имеют высокую временная сложность. Если в строке N различных символов и длина строки равна M, временная сложность выполнения будет порядка M*N. Поэтому не рекомендуется использовать эти подходы, если вам нужно анализировать строки из тысяч символов. Для этого мы можем использовать другие подходы, обсуждаемые в следующих разделах.

Использование словаря Python для подсчета вхождений каждого символа в строку

Словарь в Python хранит пары ключ-значение. Чтобы подсчитать количество вхождений каждого символа в строку в Python с помощью словаря, мы будем использовать следующий подход.

  • Сначала мы создадим пустой словарь с именем countOfChars для хранения символов и их частоты.
  • Теперь мы будем перебирать входную строку, используя цикл for.
  • Во время итерации мы проверим, присутствует ли текущий символ в словаре, используя оператор принадлежности.
  • Если символ присутствует в словаре, мы увеличим значение, связанное с символом, на 1. В противном случае мы добавим символ в качестве ключа в словарь с 1 в качестве связанного значения.

После выполнения цикла for мы получим количество каждого символа в словаре countOfChars . Вы можете наблюдать это на следующем примере.

 input_string = "Pythonforbeginners — отличный источник для начала работы с Python. "
print("Входная строка:", input_string)
количество символов = дикт()
для символа в input_string:
    если символ в countOfChars:
        countOfChars[символ] += 1
    еще:
        countOfChars[символ] = 1
print("Количество символов в строке:")
печать (количество символов) 

Вывод:

 Входная строка: Pythonforbeginners — отличный источник для начала работы с Python.
Количество символов в строке:
{'P': 2, 'y': 2, 't': 8, 'h': 3, 'o': 5, 'n': 4, 'f': 1, 'r': 5, ' b': 1, 'e': 6, 'g': 3, 'i': 3, 's': 4, ' ': 9, 'a': 3, 'u': 1, 'c': 1, 'd': 1, 'w': 1, '.': 1} 

Вместо использования операторов if else вы можете использовать блоки try-except python для подсчета вхождений символов в строку.

  • Внутри цикла for мы увеличим значение, связанное с текущим символом в словаре, на 1 в блоке try. Если символ отсутствует в словаре, программа вызовет исключение KeyError.
  • В блоке exclude мы поймаем исключение KeyError. Здесь мы назначим символ словарю в качестве ключа с 1 в качестве связанного значения.

После выполнения цикла for мы получим количество каждого символа в словаре countOfChars . Вы можете наблюдать это на следующем примере.

 input_string = "Pythonforbeginners — отличный источник для начала работы с Python."
print("Входная строка:", input_string)
количество символов = дикт()
для символа в input_string:
    пытаться:
        countOfChars[символ] += 1
    кроме KeyError:
        countOfChars[символ] = 1
print("Количество символов в строке:")
печать (количество символов) 

Вывод:

 Входная строка: Pythonforbeginners — отличный источник для начала работы с Python.
Количество символов в строке:
{'P': 2, 'y': 2, 't': 8, 'h': 3, 'o': 5, 'n': 4, 'f': 1, 'r': 5, ' b': 1, 'e': 6, 'g': 3, 'i': 3, 's': 4, ' ': 9, 'a': 3, 'u': 1, 'c': 1, 'd': 1, 'w': 1, '.': 1} 

Подход с использованием блока try-except работает лучше всего, если у нас есть большая входная строка с очень небольшим количеством различных символов по сравнению с длиной строки. нить. Если входная строка небольшая, а длина входной строки не очень велика по сравнению с общим количеством различных символов, подход будет медленнее. Это связано с тем, что обработка исключений является дорогостоящей операцией.

Если программа очень часто вызывает исключение KeyError, это снизит производительность программы. Таким образом, вам следует выбирать между использованием оператора if-else или блоков try-except в зависимости от длины входной строки и количества различных символов в строке.

Вы также можете избежать использования операторов if else и блоков try-except. Для этого нам нужно использовать следующий подход.

  • Сначала мы создадим набор символов в исходной строке, используя set() функция.
  • Затем мы инициализируем словарь countOfChars , используя элементы набора в качестве ключей и 0 в качестве связанных значений.
  • Теперь мы будем перебирать символы входной строки, используя цикл for. Во время итерации мы увеличим значение, связанное с текущим символом в countOfChars , на 1.  

После выполнения цикла for мы получим количество вхождений каждого символа в строке. Вы можете наблюдать это на следующем примере.

 input_string = "Pythonforbeginners — отличный источник для начала работы с Python."
print("Входная строка:", input_string)
мой набор = набор (входная_строка)
количество символов = дикт()
для элемента в mySet:
    countOfChars[элемент] = 0
для символа в input_string:
    countOfChars[символ] += 1
print("Количество символов в строке:")
print(countOfChars) 

Вывод:

 Входная строка: Pythonforbeginners — отличный источник для начала работы с Python.
Количество символов в строке:
{'d': 1, 'r': 5, 'y': 2, 'a': 3, 'P': 2, 'i': 3, 's': 4, ' ': 9, 'f': 1, '.': 1, 'h': 3, 't': 8, 'g': 3, 'c': 1, 'u': 1, 'e': 6, ' n': 4, 'w': 1, 'o': 5, 'b': 1}
 

Подсчет вхождений каждого символа в строку с помощью функции collections.Counter() эти функции. Он используется для подсчета частоты элементов в объекте коллекции.

Функция Counter() принимает объект-коллекцию в качестве входного аргумента. После выполнения он возвращает объект счетчика коллекций. Объект Counter содержит все символы и их частоту в виде словаря.

Чтобы подсчитать количество вхождений каждого символа в строке в Python, вы можете просто передать его функции Counter() и распечатать вывод, как показано в следующем примере.

 из коллекции Счетчик импорта
input_string = «Pythonforbeginners — отличный источник для начала работы с Python».
print("Входная строка:", input_string)
countOfChars = Счетчик (input_string)
print("Количество символов в строке:")
print(countOfChars) 

Вывод:

 Входная строка: Pythonforbeginners — отличный источник для начала работы с Python.
Количество символов в строке:
Counter({' ': 9, 't': 8, 'e': 6, 'o': 5, 'r': 5, 'n': 4, 's': 4, 'h': 3, 'g': 3, 'i': 3, 'a': 3, 'P': 2, 'y': 2, 'f': 1, 'b': 1, 'u': 1, 'c ': 1, 'd': 1, 'w': 1, '.': 1}) 

Использование Collections.defaultdict()

Модуль collections предоставляет нам объект словаря с расширенными функциями. Это называется defaultdict . defaultdict не вызывают исключение KeyError, если вы пытаетесь изменить значение, связанное с ключом, которого нет в словаре. Вместо этого он сам создает ключ, а затем приступает к выполнению инструкции.

Например, если в простом словаре нет ключа с именем «Адитья» и мы выполняем операцию myDict[«Адитья»]+=1 , программа столкнется с исключением KeyError. С другой стороны, объект defaultdict сначала создаст ключ «Адитья» в словаре и успешно выполнит приведенное выше утверждение. Однако нам нужно помочь объекту defaultdict создать значение по умолчанию для ключа.

Функция defaultdict() принимает другую функцию, скажем, fun1 в качестве входного аргумента. Всякий раз, когда объекту defaultdict необходимо создать новый ключ со значением по умолчанию, он выполняет fun1 и использует значение, возвращенное fun1 , в качестве связанного значения для нового ключа. В нашем случае нам нужно иметь значение по умолчанию 0 для количества символов, мы передадим Функция int() в качестве входного аргумента функции defaultdict() .

Чтобы подсчитать количество вхождений каждого символа в строку с использованием объекта defaultdict в Python, мы будем использовать следующие шаги.

  • Сначала мы создадим объект defaultdict, используя функцию collections.defaultdict() . Здесь мы передадим функцию int() в качестве входного аргумента функции defaultdict() .
  • Затем мы будем перебирать символы входной строки, используя цикл for.
  • Во время итерации мы будем продолжать увеличивать значение, связанное с каждым символом в объекте defaultdict.

После выполнения цикла for мы получим количество каждого символа в объекте defaultdict. Вы можете наблюдать это на следующем примере.

 из коллекций import defaultdict
input_string = «Pythonforbeginners — отличный источник для начала работы с Python». 
print("Входная строка:", input_string)
countOfChars = defaultdict(int)
для символа в input_string:
    countOfChars[символ] += 1
print("Количество символов в строке:")
печать (количество символов) 

Вывод:

 Входная строка: Pythonforbeginners — отличный источник для начала работы с Python.
Количество символов в строке:
defaultdict(, {'P': 2, 'y': 2, 't': 8, 'h': 3, 'o': 5, 'n': 4, 'f': 1, 'r': 5, 'b': 1, 'e': 6, 'g': 3, 'i': 3, 's': 4, ' ': 9, 'a': 3, ' u': 1, 'c': 1, 'd': 1, 'w': 1, '.': 1}) 

Заключение

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

Надеюсь, вам понравилась эта статья. Чтобы узнать больше о программировании на Python, вы можете прочитать эту статью о понимании словаря в Python. Вам также может понравиться эта статья о регрессии в машинном обучении.