Если много однотипных данных, их лучше хранить в коллекции. Не могу понять зачем нужно переприсваивание. Функции с названиями load_... обычно подразумевают получение каких-то данных, если нужно поместить объект в коллекцию, у которой подразумевается ограниченный размер, это можно сделать проще. От использования global лучше отказаться, фукнции лучше делать независимыми от другой части программы (если они не являются методами объектов, тогда их поведение может зависеть от хранимых в объекте атрибутов)
STORAGE_LIMIT = 6
def store_item(item, storage: list):
global STORAGE_LIMIT
n = len(storage)
if n >= STORAGE_LIMIT:
print('инвентарь заполнен')
return
for i in range(n):
if storage[i] == '0':
storage[i] = item
return
Пример с пользовательским классом:
class Storage:
def __init__(self, limit: int):
self.limit = limit
self.storage = [0] * self.limit
self.cur_size = 0
def store_item(self, item):
if self.cur_size >= self.limit:
print('инвентарь заполнен')
return
for i in range(self.cur_size):
if self.storage[i] == '0':
self.storage[i] = item
return
global item, inventary_cell1, inventary_cell2, inventary_cell3, inventary_cell4, inventary_cell5, inventary_cell6
if inventary_cell1 == '0':
inventary_cell1, item = item, inventary_cell1
else:
if inventary_cell2 == '0':
inventary_cell2, item = item, inventary_cell2
else:
if inventary_cell3 == '0':
inventary_cell3, item = item, inventary_cell3
else:
if inventary_cell4 == '0':
inventary_cell4, item = item, inventary_cell4
else:
if inventary_cell5 == '0':
inventary_cell5, item = item, inventary_cell5
else:
if inventary_cell6 == '0':
inventary_cell6, item = item, inventary_cell6
else:
print('|инвентарь заполнен|')