Итак, вы — суперкарго. Вам нужно разместить на судне переданный груз. Грузы будем обозначать целыми числами, а палуб на нашем судне три: на нижней размещаются только трёхзначные числа, на средней двузначные, на верхней однозначные. Никакие другие наш корабль взять не может.
Напишите функцию supercargo(load, capacity), принимающую в качестве аргументов кортеж чисел-грузов и кортеж вместимостей палуб — сначала верхней, затем средней, потом нижней.
Функция возвращает кортеж нераспределённых грузов и логическое значение: удалось загрузить судно полностью или нет (то есть, если не осталось свободных мест ни на одной палубе, значит, удалось).
В качестве ответа сдайте только код, содержащий указанную функцию. Вызывать её не нужно!
Мой код:
def supercargo(load, capacity):
upper_deck = []
middle_deck = []
lower_deck = []
for item in load:
if 0 <= item <= 9 and len(upper_deck) < capacity[0]:
upper_deck.append(item)
elif 10 <= item <= 99 and len(middle_deck) < capacity[1]:
middle_deck.append(item)
elif 100 <= item <= 999 and len(lower_deck) < capacity[2]:
lower_deck.append(item)
remaining_load = [item for item in load if item not in upper_deck + middle_deck + lower_deck]
fully_loaded = len(remaining_load) == 0
return tuple(remaining_load), fully_loaded
В итоге выдает false вместо true и наоборот. Что не так?
Напишите функцию supercargo(load, capacity), принимающую в качестве аргументов кортеж чисел-грузов и кортеж вместимостей палуб — сначала верхней, затем средней, потом нижней.
Функция возвращает кортеж нераспределённых грузов и логическое значение: удалось загрузить судно полностью или нет (то есть, если не осталось свободных мест ни на одной палубе, значит, удалось).
В качестве ответа сдайте только код, содержащий указанную функцию. Вызывать её не нужно!
Мой код:
def supercargo(load, capacity):
upper_deck = []
middle_deck = []
lower_deck = []
for item in load:
if 0 <= item <= 9 and len(upper_deck) < capacity[0]:
upper_deck.append(item)
elif 10 <= item <= 99 and len(middle_deck) < capacity[1]:
middle_deck.append(item)
elif 100 <= item <= 999 and len(lower_deck) < capacity[2]:
lower_deck.append(item)
remaining_load = [item for item in load if item not in upper_deck + middle_deck + lower_deck]
fully_loaded = len(remaining_load) == 0
return tuple(remaining_load), fully_loaded
В итоге выдает false вместо true и наоборот. Что не так?