Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 13, 2022 13:08:08

Ana_st
Зарегистрирован: 2022-01-13
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь! Решение задачи в Python срабатывает неверно

Добрый день! Я начала изучать Python и никак не могу решить задачу( Помогите пожалуйста исправить код
Задание:
Пользователь может удалить существующую полку из данных (только если она пустая).
Введите номер полки:
3
Результат:
Полка удалена. Текущий перечень полок: 1, 2.

У меня же при попытке удалить пустую полку пишет, что на полке есть документы

Данно

   
documents = [
{'type': 'passport', 'number': '2207 876234', 'name': 'Василий Гупкин'},
{'type': 'invoice', 'number': '11-2', 'name': 'Геннадий Покемонов'},
{'type': 'insurance', 'number': '10006', 'name': 'Аристарх Павлов'}
]
directories = {
'1': ['2207 876234', '11-2'],
'2': ['10006'],
'3': []
}


Мое решение
   
def del_shelf(directories):
 for shelf, values in directories.items():
  shelf = input('Введите номер полки: ')
  if shelf not in directories:
       return 'Такой полки не существует. Текущий перечень полок: ',  ','.join("{}".format(key) for key in directories.keys())
  elif shelf in directories:
     #if values not in directories.values():
     if not values:
       del(directories[shelf])
       return 'Полка удалена. Текущий перечень полок: ', ','.join("{}".format(key) for key in directories.keys())
     else:
       return 'На полке есть документы, удалите их перед удалением полки. Текущий перечень полок:', ','.join("{}".format(key) for key in directories.keys())
 
del_shelf(directories)

Отредактировано FishHook (Янв. 13, 2022 13:44:19)

Офлайн

#2 Янв. 13, 2022 13:47:06

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Нужна помощь! Решение задачи в Python срабатывает неверно

Ana_st
а вот объясните, почему у вас input('Введите номер полки: ') внутри цикла, который перебирает словарь полок?



Офлайн

#3 Янв. 13, 2022 20:36:54

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

Нужна помощь! Решение задачи в Python срабатывает неверно

Ana_st
Задание:
Пользователь может удалить существующую полку из данных (только если она пустая).

У меня же при попытке удалить пустую полку пишет, что на полке есть документы
Нужно нарисовать блок-схему для этого алгоритма, тогда сразу увидишь, почему этот код, реализующий алгоритм, не работает.

Вообще, алгоритм сначала записывается словесно, затем для этого словесного описания рисуется блок-схема, затем для этой блок-схемы пишется псевдокод, а уже потом для этого псевдокода пишется код (причём на любом языке, сегодня - на питоне, завтра - на си, послезавтра - на яве). Сначала ты это делаешь на бумаге всё, потом в компьютере, а потом в воображении. Так ты и придёшь к тому, чтобы сразу записывать правильно код. Вся программа будет разрабатываться в воображении, а записываться в исходник будет уже результат работы в воображении. Ты просто будешь из своей памяти переписывать это в память компьютера.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version