на самом деле у меня проблема, потому что я хочу создать список внутри функции, но это зависит от переменной, я имею в виду ... с помощью ввода я хочу определить значение переменной, с помощью кода, который я смоделировал программу ресторана сервировать стол, и я должен иметь возможность добавить к списку каждого стола то, что они просят. Теперь это мой код:
foodlist = []
table_1 = []
table_2 = []
table_3 = []
table_4 = []
table_5 = []
table_6 = []
p = 0
def openFile():
file = open("cartarest.txt","r",1,"utf-8")
line = file.readline().strip()
while line != "":
parts = line.split(";")
name = parts[0]
price = int(parts[1])
type = parts[2]
foodlist.append(parts)
line = file.readline().strip()
p += 1
return (foodlist,p)
def serveTable(x):
print("The menu of the restaurant is:")
print(foodlist)
add = input("Which food do you want to add?: ")
while add != 0:
for i in range(p):
if add.lower() == foodlist[i][0]:
**table_+x.append(foodlist[i])**
add = input("Which food do you want to add?: ")
openFile()
tableserve = input("What table do you want to attend?")
while tableserve.lower() != "cerrar":
serveTable(tableserve)
tableserve = input("What table do you want to attend?")
Обновлено: я решил проблему с переменной 'p', но теперь у меня есть вопрос, как ограничить диапазон таблиц, потому что я попытался установить значение типа «-1», и код работает нормально, это не должно не работает, только со значениями от 1 до 6 (очевидно, используя ответ @Tim)
файл формата ((название; цена; вид еды))
tables = [[] for _ in range(6)]
; не имеют 6 разных переменных с одинаковыми названиями.
@Tim код не меняет список, не добавляйте ничего
Вам нужно создать список таблиц вместо отдельных переменных для каждой таблицы
Вместо 6 табличных переменных используйте список списков и передайте номер своей таблицы в качестве индекса:
tables = [[] for _ in range(ntables)]
def serveTable(x):
print("The menu of the restaurant is:")
print(foodlist)
add = input("Which food do you want to add?: ")
while add != 0:
for i in range(p):
if add.lower() == foodlist[i][0]:
tables[x].append(foodlist[i])
add = input("Which food do you want to add?: ")
теперь у меня другая проблема NameError: имя 'p' не определено, я пробовал разные формы, но переменная не определена, и я не могу использовать global: D (изменить)
Переместите определение p
в функцию openFile
, которая увеличивает его: def openFile(): p = 0 ...
Я сделал это, но ничего не происходит
Вы не улавливаете возвращаемые переменные. У вас есть openFile()
, тогда как должен быть foodlist, p = openFile()
Я пытался что-то сделать с твоим советом, но не могу понять, куда мне положить это
Какой у Вас вопрос? Какая у вас проблема?