Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 10, 2018 20:40:42

AminSugar
Зарегистрирован: 2018-11-12
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с маленькой программкой, пожалуйста



В условии не указано, сколько нужно вводить, но я так понял до ввода пробела.
Вот что есть:

 d = {}
def func(key, val):
    if key in d:
        d[key] += int(val)
    else:
        d[key] = int(val)
while True:       
    text = input()
    if not text:
        break
    key, val = text.split()
    func(key, val)
l = d.keys()
l = list(l) 
l.sort() 
for i in l: 
    print(i, d[i])
У меня в IDLE все работает, но на сайте выдает ошибку:


Отредактировано AminSugar (Дек. 10, 2018 20:42:42)

Офлайн

#2 Дек. 10, 2018 20:55:18

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Помогите с маленькой программкой, пожалуйста

попробуйте заменить ваш цикл на такой

 while True: 
    try:      
        text = input()
    except : # или  except EOFE error:
        break
если это задание с pythontutor то там в первой строке данных стоит цифра и задании явно написано
''В первой строке дано количество записей. Далее, каждая запись содержит фамилию кандидата и число голосов…..''

Отредактировано marvellik (Дек. 10, 2018 20:59:18)

Офлайн

#3 Дек. 10, 2018 21:09:05

AminSugar
Зарегистрирован: 2018-11-12
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с маленькой программкой, пожалуйста

Задание с yandex contest, там написано именно так, да и при проверке моего кода сайт вводил различное число строк, причем без ввода количества строк в начале.
Заменил цикл на:

 while True: 
    try:      
        text = input()
    except :
        break
и получил ошибку:
 Traceback (most recent call last):
  File "C:/Users/amini/Desktop/A.py", line 12, in <module>
    key, val = text.split()
ValueError: not enough values to unpack (expected 2, got 0)
а если заменить expect на except EOFE error получаю ошибку “invalid syntax”.

Офлайн

#4 Дек. 10, 2018 21:21:21

AminSugar
Зарегистрирован: 2018-11-12
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с маленькой программкой, пожалуйста

Надо было всего-лишь одну строку в try поднять и заработало.
Спасибо, @marvellik.

 d = {}
def func(key, val):
    if key in d:
        d[key] += int(val)
    else:
        d[key] = int(val)
while True: 
    try:      
        text = input()
        key, val = text.split()
    except: 
        break
    func(key, val)
l = d.keys()
l = list(l) 
l.sort() 
for i in l: 
    print(i, d[i])

Офлайн

#5 Дек. 10, 2018 21:22:30

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Помогите с маленькой программкой, пожалуйста

мне кажется и строку func(key, val) тоже в блок try надо прописать

Отредактировано marvellik (Дек. 10, 2018 21:23:45)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version