Я новичок в Python, и я не могу понять логику того, что я пытаюсь сделать. У меня 11 списков. 10 списков содержат марку и модель автомобиля, затем стоимость каждого автомобиля и количество автомобилей каждой марки / модели. Одиннадцатый список содержит остальные 10 списков как один основной список.

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

До сих пор я был в состоянии найти значения индекса, которые мне нужны, умножить их вместе, а затем распечатать их по отдельности на экране. Я добавил переменную-счетчик, которую я пытался увеличить со значениями каждого рассчитанного продукта до конца цикла, после чего функция остановилась бы, и было бы напечатано окончательное суммированное значение, однако это привело только к печати конечного продукта. на экран или другой номер полностью.

Я добавлю примеры для контекста.

Мой текущий код:

def totalValue(all):
    print("Total Value")
    x = 0
    for x in range(0, len(all)):
        i = (all[x][1])
        q = (all[x][2])
        iq = i * q
        # qi = iq + iq
        t = '${:,.2f}'.format(iq)
        print(t)
    return all


list0 = []
list1 = []
list2 = []

car1 = ["Chevy Bolt EV", 37495, 2]
car2 = ["Kia Niro", 24485, 23]
car3 = ["VW e-Golf", 32790, 12]
car4 = ["Hyundai Kona", 37495, 3]
car5 = ["Honda Insight", 23725, 4]
car6 = ["Chevrolet Volt", 34395, 14]
car7 = ["Hyundai Ioniq", 23285, 5]
car8 = ["Tesla Model 3", 45200, 1]
car9 = ["Audi e-tron", 75795, 2]
car10 = ["Toyota Prius", 24405, 12]

all = (car1, car2, car3, car4, car5, car6, car7, car8, car9, car10)

print()
totalValue(all)

Что бы я хотел:

Total Value
$2,326,615.00

Что у меня сейчас:

Total Value
$74,990.00
$563,155.00
$393,480.00
$112,485.00
$94,900.00
$481,530.00
$116,425.00
$45,200.00
$151,590.00
$292,860.00

У меня было это однажды, думая, что это должно работать

def totalValue(all):
    print("Total Value")
    x = 0
    for x in range(0, len(all)):
        i = (all[x][1])
        q = (all[x][2])
        iq = i * q
        qi = iq + iq
    t = '${:,.2f}'.format(qi)
    print(t)
    return all

Но это привело к этому:

Total Value
$585,720.00

Я надеюсь, что я хотел бы иметь смысл. Я уточню что-нибудь, если это будет необходимо. У меня такое чувство, что я упускаю что-то довольно очевидное, но я не могу сказать, что это такое.

Заранее спасибо.

1
Dev-MDW2 12 Апр 2019 в 06:10

2 ответа

Лучший ответ

Я думаю, что вы допустили ошибку здесь: qi = iq + iq, вы можете попробовать это:

def totalValue(all):
    print("Total Value")
    x = 0
    qi = 0
    for x in range(0, len(all)):
        i = (all[x][1])
        q = (all[x][2])
        iq = i * q
        qi += iq
    t = '${:,.2f}'.format(qi)
    print(t)
    return all

И ответ будет $2,326,615.00


Или используйте sum здесь:

qi = sum(v[1] * v[2] for v in all)
print('${:,.2f}'.format(qi))
2
recnac 12 Апр 2019 в 03:24

Перебирайте пункты, каждый раз добавляя (сумму X количество) каждого автомобиля к сумме. Затем, когда цикл завершен и сумма рассчитана, выведите ее. Код:

def totalValue(all):
    print("Total Value")
    qi = 0
    for x in range(0, len(all)):
        qi += (all[x][1] * all[x][2])
    print('${:,.2f}'.format(qi))

list0 = []
list1 = []
list2 = []

car1 = ["Chevy Bolt EV", 37495, 2]
car2 = ["Kia Niro", 24485, 23]
car3 = ["VW e-Golf", 32790, 12]
car4 = ["Hyundai Kona", 37495, 3]
car5 = ["Honda Insight", 23725, 4]
car6 = ["Chevrolet Volt", 34395, 14]
car7 = ["Hyundai Ioniq", 23285, 5]
car8 = ["Tesla Model 3", 45200, 1]
car9 = ["Audi e-tron", 75795, 2]
car10 = ["Toyota Prius", 24405, 12]

all = (car1, car2, car3, car4, car5, car6, car7, car8, car9, car10)

totalValue(all)

Это работает. Этот код напечатан так:

Общая стоимость

$ 2,326,615.00

2
Tom 12 Апр 2019 в 03:21