Задача:
Задача 7. Контейнеры
Контейнеры на складе лежат в ряд в порядке невозрастания своей массы (в килограммах). На склад привезли ещё один контейнер, который также нужно положить на определённое место.
Напишите программу, которая получает на вход невозрастающую последовательность натуральных чисел, означающих массу каждого контейнера в ряду. После этого вводится число X — масса нового контейнера. Программа выводит номер, под которым будет лежать новый контейнер. Если в ряде есть контейнеры с одинаковой массой, такой же, как у нового, то его нужно положить после них.
Обеспечьте контроль ввода: все числа не превышают 200.
Пример:
Кол-во контейнеров: 8
Введите вес контейнера: 165
Введите вес контейнера: 163
Введите вес контейнера: 160
Введите вес контейнера: 160
Введите вес контейнера: 157
Введите вес контейнера: 157
Введите вес контейнера: 155
Введите вес контейнера: 154
Введите вес нового контейнера: 162
Номер, куда встанет новый контейнер: 3
Python
Помогите пожалуйста с задачей на Python.

Я сделал так. Решение основано на решение из первого комментария. Немного пояснений, если кому-то интересно.
- Проверка массы контейнера выведено в отдельную функцию: def weight_check(weight):
- Проверка контейнеров которые есть в check1 = weight_check(container_weight) , контейнер который нужно поставить check2 = weight_check(new_containers)
- В данной примере новый контейнер "вставляется" на то место на котором он должен быть, а не просто добавляется в список: containers.insert(i, check2) # "Вставляем" контейнер на нужное место
def weight_check(weight):
while weight > 200:
print(f'Вес контейнера превышает максимальный вес в 200 кг!')
weight = int(input(f'Введите вес контейнера еще раз: '))
return weight
i = 0
containers = []
number = int(input('Кол-во контейнеров: '))
for cont in range(number):
container_weight = int(input(f'Введите вес контейнера: '))
check1 = weight_check(container_weight)
containers.append(check1)
# print(containers)
new_containers = int(input('\nВведите вес нового контейнера: '))
check2 = weight_check(new_containers)
while i < len(containers) and containers[i] >= check2:
i += 1
containers.insert(i, check2) # "Вставляем" контейнер на нужное место
print(f'\nНомер, куда встанет контейнер: {i + 1}')
print(f'Контейнеры будут стоять в таком порядке {containers}')
Хуршид $
у меня ошибка небольшая закралась в строке 19
while i < len(containers) and containers[i] >= check2:
вместо знака >= должен стоять <= count = int(input('Количество контейнеров: '))
cont_list = []
count = int(input('Количество контейнеров: '))
cont_list = []
for _ in range(count):
current_cont = int(input('Введите вес контейнера: '))
if current_cont < 200:
cont_list.append(current_cont)
new_cont = int(input('Введите вес нового контейнера: '))
index = 0
while index < len(cont_list) and cont_list[index] >= new_cont:
index += 1
print('Номер, который получит новый контейнер:', index + 1)
cont_list = []
count = int(input('Количество контейнеров: '))
cont_list = []
for _ in range(count):
current_cont = int(input('Введите вес контейнера: '))
if current_cont < 200:
cont_list.append(current_cont)
new_cont = int(input('Введите вес нового контейнера: '))
index = 0
while index < len(cont_list) and cont_list[index] >= new_cont:
index += 1
print('Номер, который получит новый контейнер:', index + 1)
Похожие вопросы
- Помогите пожалуйста с задачей по python!
- Помогите пожалуйста с задачей на Python.
- Помогите пожалуйста с задачей на python!
- Помогите пожалуйста решить задачу на python
- Помогите пожалуйста с задачей на Python
- Помогите пожалуйста с задачей по python!
- Помогите пожалуйста с задачей по python!
- Помогите, пожалуйста, решить задачу Python
- Помогите пожалуйста решить задачу "Ход конём" в Python.
- Помогите, пожалуйста, с задачей Python , Яндекс практикум.
i = 0
l = []
number = int(input('Кол-во контейнеров: '))
for _ in range(number):
----l.append(int(input('Введите вес контейнера: ')))
k = int(input('\nВведите вес нового контейнера: '))
while i < len(l) and l[i] >= k:
----i += 1
print('\nНомер, куда встанет контейнер:', i + 1)