Подсчитать количество чисел в тексте
Всем привет, решал задачку в пайтоне и столкнулся с проблемной — незнаю как реализовать б-в пункты задания.
Вот собственно само задание:
С клавиатуры вводиться строка текста, написать програму которая для этой строки:
а) заменяет все маленькие буквы, входящие в текст на соответствующие большие;
б) подсчитывает количество цифр в тексте;
в) удаляет последнее число из текста
Пол интернета перерыл, и книжки которые были по пайтону, не подсказали как решать.
Вся надежда на ваш опыт и знания.
Пожалуйста помогите, очень нужно!
П.С вот кусочек программы. Пункт А.
1 2 3 4 5 6
a=input('Введите строку') print(a) b=a.split( ) n=len(b) print('Форматированый текст',a.upper()) h=[]
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Подсчитать в тексте количество слов в тексте
Подсчитать в тексте количество слов. (Словом считать набор символов между пробелами, знаками.
Подсчитать в заданном тексте количество удвоенных букв
Подсчитать в заданном тексте количество удвоенных букв.
Строка: Подсчитать количество чисел в тексте (не цифры, а именно чисел)
3) С клавиатуры вводится текстовая строка. Составить программу, которая подсчитывает количество.

Подсчитать количество чисел в тексте
С клавиатуры ввести текстовую строку. Разработать программу которая подсчитывает количество чисел в.
Подсчитать количество чисел в тексте
В общем надо создать програмку на Delphi 6. которая будет считать количество чисел в тексте. Если.
103 / 81 / 54
Регистрация: 25.11.2016
Сообщений: 278
Сообщение от SkyFanGT 
б) подсчитывает количество цифр в тексте;
num = [int(i) for i in a if i.isdigit()] print('Количество цифр в тексте:', len(num))
Регистрация: 21.11.2016
Сообщений: 20
Спасибо)Интересная для меня функция) Всё работает.
Осталось только как-то удалить последнее число из текста.
103 / 81 / 54
Регистрация: 25.11.2016
Сообщений: 278
1 2 3 4 5 6
new = a.split() for i in new: if i.isdigit(): new.remove(i[-1]) for i in new: print(i, end=' ')
Как то так.
Ну и целиком весь код
1 2 3 4 5 6 7 8 9 10 11
a = input('Введите строку: ') print(a) print('Форматированый текст: ',a.upper()) num = [int(i) for i in a if i.isdigit()] print('Количество цифр в тексте:', len(num)) new = a.split() for i in new: if i.isdigit(): new.remove(i[-1]) for i in new: print(i, end=' ')
Регистрация: 21.11.2016
Сообщений: 20
У мене почему то удаляет не последнее число а все цифры(
В чём косяк?
103 / 81 / 54
Регистрация: 25.11.2016
Сообщений: 278
Сообщение от SkyFanGT 
В чём косяк?
Во мне. потому что я поторопился и неправильно сделал.
1 2 3 4 5 6 7
new = a.split() out = [] for i in new: if i.isdigit(): out.append(new[:-1]) for x in out[:][0]: print(x, end=' ')
Вот рабочий код, но это «говнокод». Потому что я сам новичок и не знаю как сделать правильно.
![]()
5415 / 3839 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
Если все объединить, то получим такой код:
1 2 3 4 5 6 7 8 9 10 11 12
line=list(input("Введите строку содержащую буквы и цифры:")) cnt=0 for i,s in enumerate(line): if s.lower(): line[i] = line[i].upper() # меняем регистр if s.isdigit(): x = i # здесь будет индекс последней цифры в строке cnt+=1 # считаем цифры del line[x] # удаляем последнюю цифру из списка print("Всего цифр:",cnt) print("".join(line)) # соединяем список в строку
PS: Понятно, что регулярными выражениями будет, наверно, короче, но я так понимаю, что надо было обойтись обычными методами.
4973 / 3209 / 1125
Регистрация: 21.03.2016
Сообщений: 7,939

Сообщение было отмечено SkyFanGT как решение
Решение
Сообщение от Garry Galler 
Если все объединить, то получим такой код
меня смущает эти два задания
б) подсчитывает количество цифр в тексте;
в) удаляет последнее число из текста
потому как если последние ЧИСЛО будет 253 то ваш код удалит последнюю цифру 3 но не число.
тут как то не понятно что посчитать а что удалить. если задания верны то увы ваш код не выполнит последнее условие
Добавлено через 7 минут
немного изменив получим требуемое
1 2 3 4 5 6 7 8 9 10 11 12
line=input("Введите строку содержащую буквы и цифры:\n").split() cnt=0 for i,s in enumerate(line): if s.lower(): line[i] = line[i].upper() # меняем регистр if s.isdigit(): x = i # здесь будет индекс последнего числа в строке cnt+= len(s) # считаем цифры del line[x] # удаляем последнюю цифру из списка print("Всего цифр:",cnt) print(' '.join(line)) # соединяем список в строку
Посчитать количество чисел в списке. Python
Для подсчета количества чисел в списке на языке Python можно воспользоваться функцией filter() и функцией len():
numbers = [‘one’, 2, ‘three’, 4, ‘five’]
count_numbers = len(list(filter(lambda x: isinstance(x, int), numbers)))
print(count_numbers) # 2
В данном примере мы создаем список чисел и используем функцию filter(), чтобы отфильтровать только элементы, которые являются целыми числами. Затем мы преобразуем результат filter() в список и применяем функцию len() для подсчета количества элементов в списке. В результате получаем число 2, что означает, что в исходном списке содержится два числа.
Переписать другими словами
Написать сочинение по запросу
Или попробуйте другие режимы нейросети.
Считать количество чисел в списке может быть довольно трудоемкой задачей, особенно когда дело касается больших массивов данных. Но теперь вы можете легко решить эту проблему с помощью нашей нейросети онлайн!
Наша нейросеть позволяет вам считывать количество чисел в списке без каких-либо сложностей. Просто загрузите ваш список на нашу платформу, и нейросеть пишет текст, указывая сколько цифр в этом списке. Это очень просто и удобно, и значительно экономит ваше время и убавляет затраты на ручной подсчет чисел. Попробуйте нашу нейросеть онлайн и вы не пожалеете о своем выборе.
Каким выражением на python можно посчитать количество цифр числа?
Для вычисления количества [десятичных] цифр целого числа можно воспользоваться целой частью десятичного логарифма (правда, результат будет занижен на единицу, но её достаточно будет прибавить):
(Последняя строка есть искомое python-выражение; ещё и print можно выбросить для краткости.)
Пожертвовав однострочностью, тоже самое можно сделать без вещественной арифметики и модуля math, воспользовавшись циклом (из-за технических дефектов этого сайта приходится в начале каждой строки добавлять лишние символы, символ подчёркивания в данном случае):
(В только-что приведённом фрагменте мы просто, делением на 10, выбрасываем цифру за цифрой пока ничего не останется.)
Для вещественных же чисел мы можем воспользоваться двумя циклами — первый будет идентичен уже приведённому и будет выполнять подсчёт цифр целой части числа, а второй будет, вместо деления, умножать число на 10, пока оно не станет целым, что позволит подсчитать количество цифр в дробной части числа (да, программка зависнет для периодических дробей):
(N.B., в этом фрагменте, подвыражение m%1 действует по формальным правилам нахождения остатка — оно находит неименьшее число, которое следует добавить к mk для некоторого множителя k; такой «остаток» может быть и дробным, что позволяет кратко получить дробную часть числа, e.g., 3.7%1=0.7.)
P.S.: На мой взгляд, эти примеры, несмотря на некоторую многословность, более приемлемы чем «хак» с преобразованием числа в строку [приведением типов].
Условие
Дано N чисел: сначала вводится число N, затем вводится ровно N целых чисел. Подсчитайте количество нулей среди введенных чисел и выведите это количество. Вам нужно подсчитать количество чисел, равных нулю, а не количество цифр.
Решение
num_zeroes = 0 for i in range(int(input())): if int(input()) == 0: num_zeroes += 1 print(num_zeroes)
Добавить комментарий Отменить ответ
ЕГЭ на соточку для чайников
Прошу прощения, что так долго пропадал. Питошка вернулся, да еще и с группой в вконтакте, подписывайтесь. Помимо этого, на питошке откроется новая рубрика, в которой будут четкие объяснения всех заданий ЕГЭ и ОГЭ по информатике, внимательно прочитав которые, я уверен, вы улучшите свои баллы на экзамене


