какая ошибка в цикле while / for? - PullRequest
0 голосов
/ 29 октября 2019

Это вывод с использованием неправильной операции цикла / while:

текущее значение равно 60

текущее значение равно 120

общее значение равно 120

Это то, что я хотел бы видеть:

текущее значение 10

текущее значение 30

общее значение 30

prices = [10, 20, 30]
total = 0
steps = 0
step_limit = 2
while steps < step_limit:
    steps +=1
    for i in prices:
        total += i
    print(f'current value is {total}')
print(f'total value is {total}')

1 Ответ

0 голосов
/ 29 октября 2019

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

for i in prices:
    total += i

Это означает, что вы перебираете каждый элемент в списке и добавляетеэто к итогу (10 + 20 + 30). Это делается 2 раза, поэтому общее количество будет равно 120.

Вы должны заменить эту часть кода чем-то, что одновременно обращается только к одному элементу. Например:

total += prices[steps]

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

total += prices[steps]
print(f'total value is {total}')
...