Форум сайта python.su
angree77Так на 1 надо увеличивать значение, хранящееся в словаре, а не переменную, равную 0 и нигде больше не используемую
значение value увеличивается на 1-ку
Офлайн
посмотрите на то как называется ваша переменная со словами, как называется аргумент функции и на имена используемые внутри вашей функции… В этом и проблема. Помимо того что вы не научились более грамотно формулировать т отч оу вас не получается, но это должно прийти со временем.
Офлайн
JOHN_16Ну как говорится москва тоже не сразу строилась… учусь стараюсь, пока на начальном этапе нахожусь…
но это должно прийти со временем
Egorro13Спасибо попробую….
Так на 1 надо увеличивать значение, хранящееся в словаре, а не переменную, равную 0 и нигде больше не используемую
Офлайн
Решение:
words = input()
words = words.lower().split() #переводим все в нижний регистр и разделяем
s=set(words) # убираем повторения
d = dict.fromkeys(s,0) # создаем словарь
for key in words: #цикл по словам из stdin
if key in d: #смотрим повторяется ли слово в словаре, а оно повторяется :)
d[key] += 1
else:
d[key] = 1
for key in d:
print(key, d[key]) #выводим значения
Офлайн
Молодец парень старается пытается выучить, а вы те кто знает и понимает вместо того чтобы упрекать его, и хвалить себя типа я бы за 10 минут сделал, лучше бы помогли советом, в принципе он об этом вас и просит.
Офлайн
warlifeТы, может, невнимательно прочитал топик, а может просто умственно отсталый и из-за этого не понял нифига. В принципе за десять минут я ему и написал функцию, которая делает всю основную работу. Больше времени ушло на выяснение у него задания.
и хвалить себя типа я бы за 10 минут сделал, лучше бы помогли советом, в принципе он об этом вас и просит.
Офлайн
Други помогите найти где ошибся,
Условие задачи:
Имеется реализованная функция f(x), принимающая на вход целое число x, которая вычисляет некоторое целочисленое значение и возвращает его в качестве результата работы.
Функция вычисляется достаточно долго, ничего не выводит на экран, не пишет в файлы и зависит только от переданного аргумента x.
Напишите программу, которой на вход в первой строке подаётся число n — количество значений x, для которых требуется узнать значение функции f(x), после чего сами эти x значений, каждое на отдельной строке. Программа должна после каждого введённого значения аргумента вывести соответствующие значения функции f на отдельной строке.
Для ускорения вычисления необходимо сохранять уже вычисленные значения функции при известных аргументах.
Обратите внимание, что в этой задаче установлено достаточно сильное ограничение в две секунды по времени исполнения кода на тесте.
Решение:
k = int(input())
d = {}
for i in range(k):
n = int(input())
d[i] = f(n)
print(d[i])
Отредактировано angree77 (Май 4, 2019 10:36:40)
Офлайн
angree77Тут смысл в том, что в ячейке d(n) сохраняется результат функции f(n), перед каждым запуском функции проверяется - вдруг для этого n результат уже сохранен. А у тебя просто выполняется f для всех подряд аргументов, даже если все будут одинаковымиd[i] = f(n)
Отредактировано Egorro13 (Май 4, 2019 11:18:29)
Офлайн
Egorro13спасибо друг, оказывается надо сравнивать значения, что поступают на вход, с теми что уже поступили…
Тут смысл в том, что в ячейке d(n) сохраняется значение функции f(n), перед каждым запуском функции проверяется - вдруг для этого n значение уже сохранено.
Отредактировано angree77 (Май 4, 2019 13:02:34)
Офлайн
Уважаемые гуру питона подскажите как в строке подаваемой из вне отличить цифру от буквы?
Например имеется строка типа a32B103c4N5, и надо ее распаковать т.е. операция со строковыми переменными a*32+B*103+c*4+N*5, конечный результат приводить не буду, но запишу кратко
a повторяется 32 раза, В повторяется 103 раза, с 4 раза и N 5 раз,
я сделал подобное, но только когда цифра имеет всего 1 разряд, т.е. в цикле range с шагом 2
подскажите в каком направлении хотя бы копать?
Отредактировано angree77 (Май 7, 2019 16:57:37)
Офлайн