Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 30, 2019 17:55:09

Egorro13
Зарегистрирован: 2019-04-16
Сообщения: 105
Репутация: +  5  -
Профиль  

Помогите новичку

angree77
значение value увеличивается на 1-ку
Так на 1 надо увеличивать значение, хранящееся в словаре, а не переменную, равную 0 и нигде больше не используемую

Офлайн

#2 Апрель 30, 2019 17:56:48

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Помогите новичку

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



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Апрель 30, 2019 18:56:53

angree77
Зарегистрирован: 2019-04-24
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку

JOHN_16
но это должно прийти со временем
Ну как говорится москва тоже не сразу строилась… учусь стараюсь, пока на начальном этапе нахожусь…

Egorro13
Так на 1 надо увеличивать значение, хранящееся в словаре, а не переменную, равную 0 и нигде больше не используемую
Спасибо попробую….

Офлайн

#4 Апрель 30, 2019 20:01:16

angree77
Зарегистрирован: 2019-04-24
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку

Решение:

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]) #выводим значения

Офлайн

#5 Май 2, 2019 12:13:40

warlife
Зарегистрирован: 2019-05-02
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку

Молодец парень старается пытается выучить, а вы те кто знает и понимает вместо того чтобы упрекать его, и хвалить себя типа я бы за 10 минут сделал, лучше бы помогли советом, в принципе он об этом вас и просит.

Офлайн

#6 Май 2, 2019 13:49:25

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9999
Репутация: +  857  -
Профиль   Отправить e-mail  

Помогите новичку

warlife
и хвалить себя типа я бы за 10 минут сделал, лучше бы помогли советом, в принципе он об этом вас и просит.
Ты, может, невнимательно прочитал топик, а может просто умственно отсталый и из-за этого не понял нифига. В принципе за десять минут я ему и написал функцию, которая делает всю основную работу. Больше времени ушло на выяснение у него задания.



Офлайн

#7 Май 4, 2019 10:35:06

angree77
Зарегистрирован: 2019-04-24
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку

Други помогите найти где ошибся,
Условие задачи:
Имеется реализованная функция 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])
выходные данные совпадают с ответом по задаче но не проходит тест, из-за того программа продолжает считывать данные,
если меняю цикл for на while i <= k то программа вываливает ошибку на значение n = int(input()) File “jailed_code”, line 11, in <module>
n = int(input())
EOFError: EOF when reading a line
вариант воткнуть while после цикла for с выводом значений сразу приводит к time limit exceed

Отредактировано angree77 (Май 4, 2019 10:36:40)

Офлайн

#8 Май 4, 2019 10:52:04

Egorro13
Зарегистрирован: 2019-04-16
Сообщения: 105
Репутация: +  5  -
Профиль  

Помогите новичку

angree77
 d[i] = f(n)
Тут смысл в том, что в ячейке d(n) сохраняется результат функции f(n), перед каждым запуском функции проверяется - вдруг для этого n результат уже сохранен. А у тебя просто выполняется f для всех подряд аргументов, даже если все будут одинаковыми

Отредактировано Egorro13 (Май 4, 2019 11:18:29)

Офлайн

#9 Май 4, 2019 12:23:37

angree77
Зарегистрирован: 2019-04-24
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку

Egorro13
Тут смысл в том, что в ячейке d(n) сохраняется значение функции f(n), перед каждым запуском функции проверяется - вдруг для этого n значение уже сохранено.
спасибо друг, оказывается надо сравнивать значения, что поступают на вход, с теми что уже поступили…
есть уже пара мыслишек как реализовать это
updated
да так и оказалось, надо сравнивать те значения что поступают с теми что поступили, сделал проверку задача решена….

Отредактировано angree77 (Май 4, 2019 13:02:34)

Офлайн

#10 Май 7, 2019 16:22:12

angree77
Зарегистрирован: 2019-04-24
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку

Уважаемые гуру питона подскажите как в строке подаваемой из вне отличить цифру от буквы?
Например имеется строка типа a32B103c4N5, и надо ее распаковать т.е. операция со строковыми переменными a*32+B*103+c*4+N*5, конечный результат приводить не буду, но запишу кратко
a повторяется 32 раза, В повторяется 103 раза, с 4 раза и N 5 раз,
я сделал подобное, но только когда цифра имеет всего 1 разряд, т.е. в цикле range с шагом 2
подскажите в каком направлении хотя бы копать?

Отредактировано angree77 (Май 7, 2019 16:57:37)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version