Краткий ответ: Добавьте break
.
. Код должен завершаться, когда он находит значение в столбце.В противном случае он продолжит поиск в других ячейках столбца, в которых значение отсутствует, что приведет к тому, что item_on будет установлен в False.
Кроме того, в вашем коде вы устанавливаете item_on
в False,вне функции.item_on
внутри esta
, установленное в значение true, не повлияет на item_on
вне его.
что-то вроде этого должно сработать: если весь код находится в одной области видимости.
def esta():
for itemChecker in inventory["A"]:
if itemChecker == newItem:
item_on = True
break
Хотя я думаю, что вы должны использовать esta
в качестве функции.
def esta():
for itemChecker in inventory["A"]:
if itemChecker == newItem:
return True
return False
newItem = input("New Item: ")
itemChecker = " "
# assign the value of esta to a variable
item_on = esta()
# remove redundant check for True / False (refer to https://pep8.org)
if item_on:
print("Item is on the column")
else:
print("Item isn't on the column")
Надеюсь, это поможет.