Сумма, не выполняющая сложение по списку, указанному в python - PullRequest
0 голосов
/ 25 мая 2020

Итак, у меня есть список, я изменил его со строк на целые числа, и теперь мне нужно сложить их все в сумме. Единственное, мой код не выполняет вычисления, даже когда функция вызывается. Вот мой код;

    # create an empty list for your products.
products = []

# Asking for the number of elements to be inputted.
n = int(input("Enter number of products you're buying : "))

# Some UI for the customer.
print("What are these products?")
# iterating until the range that has been chosen.
for i in range(0, n):
    ele = input()

    products.append(" - " + ele)  # adding the element


def totalPrice():
    price = [int(cost[i])]
    print(sum(price))


# Some UI for the customer.
print("How much do those items cost?")
# create an empty list for your prices.
cost = []

# iterating until the range of the products array.
for i in range(products.__len__()):
    ele = str(input())

    cost.append(ele)  # adding the element

# concatenating the lists, putting them in descending order and displaying them.
newList = [i + j for i, j in zip(cost, products)]
newList.sort(reverse=True)
print("Your products are : " + str(newList))


totalPrice()

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

1 Ответ

2 голосов
/ 25 мая 2020

В функции

price = [int(cost[i])]

Это помещает одиночный элемент в список price, используя global значение i, которое было осталось после этого for i in range(products.__len__()): l oop пробежал на верхнем уровне. (Между прочим, не звоните .__len__() самостоятельно - встроенный len предназначен для этого за вас - и не звоните oop в любом случае .)

если я попытаюсь настроить таргетинг на индекс «прайс-листа», это даст ошибку итерации.

Понятия не имею, что это должно означать. 1022 * Если вы хотите создать список значений, соответствующий исходному списку, вам нужно это сделать - либо повторяя с помощью for l oop, либо используя понимание:

price = [int(c) for c in cost]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...