индекс списка вне диапазона при печати массива - PullRequest
0 голосов
/ 30 января 2020

Я начинающий программист, и у меня проблемы с массивом. Я пытался напечатать с подсчетом, он всегда показывает ту же ошибку, которая есть;

IndexError: list index out of range

Мне нужно print имя элемента , которое является первым в индексе, а рядом с ним - цена, которую я также должен распечатать рядом с ним. Но я не хочу печатать запас, который является каждым третьим элементом в массиве. Тот же шаблон для названия товара и цены.

Вот мой код:

candy = ["Hi-Chew",10,200, 'Gummy bear',8,200, 'skittles',11,200, 'Mint',13,200, 'Cadbury',10,200,]

bakedGood= ['Bread (Whole Wheat)',10,200, 'White bread',10,200, 'Baguette',15,200, 'Cheese Bread',12,200, 'sausage bun',13,200]

meat = ['Chicken nuggets (12 peices)',10,200, 'BBQ  wings (6 pc)',15,200, 'Pizza meat-eater (10 cm radius)',40,200, 'Cheeseburger',15,200, 'Chicken Breast',25,200]

savouryVeg = ['pizza (veg)',45,200, 'Salad',20,200, 'Fries',10,200,'veg burger',20,200,'Naan',12,200]

bakedSw = ['Strawberry cake',50,50, 'Chocolate cake',50,50, 'Chocolate cupcake',15,100,'Glazed donut',10,200, 'Chocolate donut',10,200,]

location = ['candy','bakedGood','meat','savouryVeg','bakedSw']

categories = ['Candy', 'Baked Goods', 'Meat', 'Veg', 'Baked sweets']

def menu ():
    order = ''
    for i in range (1,len(categories)):
        print(str(i+1)+".", categories[i])
    choice = int(input("Choose a category by typing the number beside the categories name."))
    print("Items in this list are")
    print("Item name          Price")
    final = location[choice]
    count = 0
    count2 = len(final)
    for c in range (len(final)):
        print(final[c+count],"        ",final[c+1+count])
        if count2 != 0:
            count+=3
            count-=3


menu()

1 Ответ

0 голосов
/ 30 января 2020

Здесь я внес некоторые коррективы, чтобы ваша функция работала. Однако я бы посоветовал вам не работать со списками, вместо этого вы можете использовать словари.

candy = ["Hi-Chew",10,200, 'Gummy bear',8,200, 'skittles',11,200, 'Mint',13,200, 'Cadbury',10,200,]
bakedGood= ['Bread (Whole Wheat)',10,200, 'White bread',10,200, 'Baguette',15,200, 'Cheese Bread',12,200, 'sausage bun',13,200]
meat = ['Chicken nuggets (12 peices)',10,200, 'BBQ  wings (6 pc)',15,200, 'Pizza meat-eater (10 cm radius)',40,200, 'Cheeseburger',15,200, 'Chicken Breast',25,200]
savouryVeg = ['pizza (veg)',45,200, 'Salad',20,200, 'Fries',10,200,'veg burger',20,200,'Naan',12,200]
bakedSw = ['Strawberry cake',50,50, 'Chocolate cake',50,50, 'Chocolate cupcake',15,100,'Glazed donut',10,200, 'Chocolate donut',10,200,]
location = [candy,bakedGood,meat,savouryVeg,bakedSw]
categories = ['Candy', 'Baked Goods', 'Meat', 'Veg', 'Baked sweets']

def menu():
    order = ''
    for i in range (len(categories)):
        print(str(i)+".", categories[i])
    choice = int(input("Choose a category by typing the number beside the categories name."))
    print("Items in this list are")
    print("Item name Price")
    final = location[choice]
    for c in range((int(len(final)/3))):
        print(str(final[c*3])+" "+str(final[c*3+1])," ",str(final[(c*3)+2]))
menu()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...