Как найти количество букв в слове пайтон

First of all, don’t use str as a variable name, it will mask the built-in name.

As for counting characters in a string, just use the str.count() method:

>>> s = "Green tree"
>>> s.count("e")
4

If you are just interested in understanding why your current code doesn’t work, you are printing 1 four times because you will find four occurrences of ‘e’, and when an occurrence is found you are printing len(scr) which is always 1.

Instead of printing len(scr) in your if block, you should be incrementing a counter that keeps track of the total number of occurrences found, it looks like you set up a variable a that you aren’t using, so the smallest change to your code to get it to work would be the following (however as noted above, str.count() is a better approach):

str= "Green tree"
scr= "e"

cstr= len(str)
n=0
a=0

while n < cstr:
    if str[n] == scr:
        a+=1
    n=n+1
print(a)

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

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

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

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

Problem:
The count method only takes in one argument and you are trying to pass a whole list.

Solution:
Simply iterate over all the letters, then test if they are in the string before you print them and their amount.

import random
wordList = ["Tree", "Fish", "Monkey"]
wordChosen = random.choice(wordList)

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

for letter in letters:
    if letter in wordChosen.lower():
        amount = str(wordChosen.lower().count(letter))
        print(letter + " : " + amount)

Result:
If the random word chosen is “Tree”:

e : 2
r : 1
t : 1

Conclusion:
Using collections is definitely a more effective method, but I believe the way I have shown above creates more of the output you were looking for.

0 / 0 / 0

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

Сообщений: 19

1

18.05.2021, 15:50. Показов 12624. Ответов 30


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

Есть слово, просто набор букв, например “иргуримгруимщгрум”

Надо с использованием функции def посчитать количество букв в произвольном слове.

Подскажите, кто знает?



0



Programming

Эксперт

94731 / 64177 / 26122

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

Сообщений: 116,782

18.05.2021, 15:50

30

Модератор

Эксперт Python

2868 / 1571 / 508

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

Сообщений: 4,198

Записей в блоге: 1

18.05.2021, 15:56

2

Ai-xander, что значит с использованием функции def?



0



Arsegg

3482 / 2089 / 560

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

Сообщений: 5,333

18.05.2021, 16:01

3

Python
1
print(len(word))



0



Am I evil? Yes, I am!

Эксперт PythonЭксперт Java

15975 / 8988 / 2601

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

Сообщений: 20,683

18.05.2021, 16:02

4

Arsegg, где def?
Низачот



0



0 / 0 / 0

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

Сообщений: 19

18.05.2021, 16:03

 [ТС]

5

т.е. не просто через len, а задать функцию def



0



Dax

Модератор

Эксперт Python

1353 / 650 / 207

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

Сообщений: 3,054

18.05.2021, 16:04

6

Python
1
2
3
4
5
6
7
8
9
10
11
12
import re
 
 
def lettercounter(mstr):
    res = re.findall(r'w', mstr)
    print(res)
    print(len(res))
 
 
if __name__ == '__main__':
 
    lettercounter(mstr='проба')



1



iSmokeJC

Am I evil? Yes, I am!

Эксперт PythonЭксперт Java

15975 / 8988 / 2601

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

Сообщений: 20,683

18.05.2021, 16:07

7

Python
1
sum(1 for _ in word)

Ai-xander, def сам напишешь?

Добавлено через 1 минуту
Dax, чем твой код отличается от return len(mstr) ?



3



Модератор

Эксперт Python

1353 / 650 / 207

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

Сообщений: 3,054

18.05.2021, 16:13

8

Не по теме:

iSmokeJC, если честно, стремление к уникальности кода меня губит, len(mstr) продуктивней

Добавлено через 3 минуты
а конкретно: функция + регулярки, хотя, это все излишнее стремление к уникальности.



0



0 / 0 / 0

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

Сообщений: 19

18.05.2021, 16:13

 [ТС]

9

спасибо, бро!



0



Fudthhh

Модератор

Эксперт Python

2868 / 1571 / 508

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

Сообщений: 4,198

Записей в блоге: 1

18.05.2021, 16:20

10

Python
1
2
3
4
5
def letter_counter(word: str) -> int:
    payload: bytes = word.encode("utf-16-le")
    magic: int = int.from_bytes(payload, "little")
    x, flag = divmod(magic.bit_length(), 16)
    return x + 1 if flag else 0



0



Welemir1

18.05.2021, 16:23

Не по теме:

вот те и раз!



0



0 / 0 / 0

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

Сообщений: 19

18.05.2021, 16:24

 [ТС]

12

я начинающий, пока что для меня это арабская вязь)))

Спасибо!



0



Arsegg

3482 / 2089 / 560

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

Сообщений: 5,333

18.05.2021, 16:49

13

iSmokeJC, сколько букв в слове: _иргуримгруимщгрум_?

Python
1
2
def len_(str_):
    return len(str_.strip())

P. S. Форум сказал пока пробелам… Пусть _ будет пробелом…



0



Am I evil? Yes, I am!

Эксперт PythonЭксперт Java

15975 / 8988 / 2601

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

Сообщений: 20,683

18.05.2021, 17:01

14

Arsegg,

Цитата
Сообщение от Ai-xander
Посмотреть сообщение

Есть слово, просто набор букв



0



1509 / 479 / 56

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

Сообщений: 8,062

18.05.2021, 20:29

15

Цитата
Сообщение от Ai-xander
Посмотреть сообщение

Через def посчитать буквы в слове

ТС цель то у вас какая, это же как из гаубицы по муравьям стрелять



0



0 / 0 / 0

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

Сообщений: 19

18.05.2021, 20:57

 [ТС]

16

это я обучаюсь, домашка такая была. Основное сам делаю, но иногда на простых вещах зависаю… перегрев наверное)))



0



Hawaiian pilot

3 / 3 / 0

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

Сообщений: 93

29.09.2021, 02:10

17

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

Python
1
2
3
4
5
x = input("Введите слово ")
def number_of_letters ():
   len(x)
   return x
   print ("Количество букв в слове: ", x)

Но тоже ничего не считает((((



0



enx

1182 / 758 / 277

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

Сообщений: 1,772

29.09.2021, 02:32

18

Hawaiian pilot, не читал ветку, но так:

Python
1
2
3
4
5
6
def some_magic(x: str) -> int:
    return 0 if not x else 1 + some_magic(x[:-1])
 
 
print(some_magic('asdasdasdasdasd'))
print(len('asdasdasdasdasd'))

Добавлено через 14 минут
А если именно букв в слове, то так:

Python
1
2
3
4
5
6
7
8
9
10
11
def some_magic(x: str) -> int:
    y = [i for i in x if i.isalpha()]
 
    def some_else_magic(y: list) -> int:
        return 0 if not y else 1 + some_else_magic(y[:-1])
 
    return some_else_magic(y)
 
 
print(some_magic('123123asdasdasdasdasd'))
print(len('123123asdasdasdasdasd'))

Добавлено через 1 минуту
Дисклеймер, все написанное выше – просто шутка, но it works ))



0



Hawaiian pilot

3 / 3 / 0

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

Сообщений: 93

29.09.2021, 02:46

19

это новичкам не подходит))) реально марсианский
вот что все таки мне удалось сейчас

Python
1
2
3
4
def number_of_letters(word):            # создаем функцию подсчета количества букв в слове
    n = len(word)                                            # считаем кол-во     
    print(n)
number_of_letters(input())                             # вводим слово



0



enx

1182 / 758 / 277

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

Сообщений: 1,772

29.09.2021, 04:18

20

Hawaiian pilot, да ладно вам, какая задача, такие решения…

Python
1
2
3
4
5
6
7
8
9
10
11
def some_magic(x: str) -> int:
    return 0 if not x else 1 + some_magic(x[:-1])
 
 
def number_of_letters(word):
    len = some_magic
    n = len(word)
    print(n)
 
 
number_of_letters(input())



0



IT_Exp

Эксперт

87844 / 49110 / 22898

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

Сообщений: 92,604

29.09.2021, 04:18

Помогаю со студенческими работами здесь

Написать алгоритм Маркова, который в алфавите {a,b,c} удаляет в слове предпоследнюю букву, если в слове есть буквы b
Написать алгоритм Маркова, который в алфавите {a,b,c} дописывает в начало слова букву а, если в…

Написать алгоритм Маркова, который в алфавите {a,b,c} удаляет в слове предпоследнюю букву, если в слове есть буквы b
Написать алгоритм Маркова, который в алфавите {a,b,c} удаляет в слове предпоследнюю букву, если в…

Строчные массивы: в слове наименьшей длины удалить все гласные буквы и подсчитать их количество в этом слове
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Элементами слов…

Выделить в слове Y те буквы, которые не используется в слове Z
В общем помогите кто чем может:)

8 лаба (тип данных строка)-выделяющую в слове Y те буквы,…

Зачем нужно def main(), если есть def?
для чего нужно использовать def main(), если есть просто def? чем они отличаются?

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

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

20

считаем количество букв тремя способами с помощью функций sum, len и цикла for, результат:

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