Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 3, 2021 22:41:12

bovaniko
Зарегистрирован: 2021-10-03
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

ошибка во время исполнения

Подскажите что может быть не так в коде
Функция нахождения не нулевых значений в коде

Прикреплённый файлы:
attachment Код.PNG (21,3 KБ)

Офлайн

#2 Окт. 3, 2021 23:15:58

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

ошибка во время исполнения

bovaniko
Функция нахождения не нулевых значений в коде
  
>>> lst = [1, 0, 2, 0, 3, 0, 0, 0, 4]
>>> 
>>> out = list(filter(bool, lst))
>>> out
[1, 2, 3, 4]
>>>



Офлайн

#3 Окт. 6, 2021 21:00:09

bovaniko
Зарегистрирован: 2021-10-03
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

ошибка во время исполнения

Большое спасибо!

Офлайн

#4 Окт. 6, 2021 22:47:59

bovaniko
Зарегистрирован: 2021-10-03
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

ошибка во время исполнения

Добрый день. Еще одна задача. на транслитерацию.
Все работает. но также пишет ошибку. Может я неправильно понимаю условия задачи. но по мне все логично

 enter_str = input()
enter_number = input()
num_dist = {'2': ['а', 'б', 'в', 'г'],
            '3': ['д', 'e', 'ж', 'з'],
            '4': ['и', 'й', 'к', 'л'],
            '5': ['м', 'н', 'о', 'п'],
            '6': ['р', 'с', 'т', 'у'],
            '7': ['ф', 'х', 'ц', 'ч'],
            '8': ['ш', 'щ', 'ъ', 'ы'],
            '9': ['ь', 'э', 'ю', 'я'],
            '1': ['.', ',', '-'],
            '0':[]}
enter_number_list = list(enter_number)
enter_str_list = enter_str.split()
result_list = []
for i in range(len(enter_number_list)):
             
     for word in enter_str_list: 
        word_list = list(word.lower()) 
        if word_list[i] not in num_dist[enter_number_list[i]] and enter_number_list[i]!=0:    
               enter_str_list.remove(word)          
for j  in enter_str_list:
        if j not in result_list:
            result_list.append(j)      
print (' '.join(result_list))   

Прикреплённый файлы:
attachment Задача.PNG (192,4 KБ)

Офлайн

#5 Окт. 6, 2021 23:57:51

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

ошибка во время исполнения

bovaniko
Все работает. но также пишет ошибку.
Запустил без каких-либо внесённых изменений. Всё работает.
  
>>> def f():
...     enter_str = input()
...     enter_number = input()
...     
...     num_dist = {'2': ['а', 'б', 'в', 'г'],
...                 '3': ['д', 'e', 'ж', 'з'],
...                 '4': ['и', 'й', 'к', 'л'],
...                 '5': ['м', 'н', 'о', 'п'],
...                 '6': ['р', 'с', 'т', 'у'],
...                 '7': ['ф', 'х', 'ц', 'ч'],
...                 '8': ['ш', 'щ', 'ъ', 'ы'],
...                 '9': ['ь', 'э', 'ю', 'я'],
...                 '1': ['.', ',', '-'],
...                 '0':[]}
...     enter_number_list = list(enter_number)
...     enter_str_list = enter_str.split()
...     result_list = []
...     
...     for i in range(len(enter_number_list)):
...          for word in enter_str_list:
...             word_list = list(word.lower())
...             if word_list[i] not in num_dist[enter_number_list[i]] and enter_number_list[i]!=0:
...                    enter_str_list.remove(word)
...     
...     for j  in enter_str_list:
...             if j not in result_list:
...                 result_list.append(j)
...     
...     print (' '.join(result_list))
... 
>>> f()
кот арбуз слово завтрак кнопка лес Лоб
45
кот кнопка Лоб
>>>

А просмотрел код и задался вопросом вот к этому куску
  
and enter_number_list[i]!=0:
Когда это он будет равняться числу ноль, если там всегда строка?
  
>>> 0 == '0'
False
>>>

И я тебе не скажу, что твой код классный. Он слишком запутанный, так как он слишком перегружен, усложнён. Это происходит из-за того, что ты сначала пишешь код, а потом думаешь, правильно ли он всё делает. А надо-то делать наоборот: сначала ты должен придумать словесную форму алгоритма в полном виде, потом составить для этой словесной формы блок-схему, потом для этой блок-схемы написать псевдокод, а потом для этого псевдокода написать код. На каждом из этих этапов можно вносить исправления и оптимизации. Таким образом в итоге и получается чистый и компактный код. А вот это вот, когда оно заставляет шарики в голове крутиться на каждой строке, чтобы понять эту каждую строчку, говорит о том, что код неясный, трудный для понимания и поэтому предрасположен к спрятавшимся в нём ошибкам. Это как на улице ночью. Когда фонарь не светит на дорогу, ты не знаешь, есть ли там кто-то, туда надо идти и проверять. Другое дело, когда улица вся освещена фонарями и тебе просто видно, что там никого нет и для этого туда даже идти не надо. Вот чем запутаннее код, тем больше нужно ходить и проверять в нём. А чем яснее код, тем меньше нужно времени на работу с ним, потому что без проверок всё видно.



Отредактировано py.user.next (Окт. 7, 2021 00:08:09)

Офлайн

#6 Окт. 17, 2021 20:32:44

bovaniko
Зарегистрирован: 2021-10-03
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

ошибка во время исполнения

Спасибо за расширенный комментарий! Постараюсь учесть при изучении языка!

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version