Python L oop Контрольные упражнения - PullRequest
0 голосов
/ 07 мая 2020

Я только начал изучать python по hyperskill в течение последних нескольких недель.

Вот сценарий:

Напишите программу, которая считывает из консоли целые числа (одно в line), пока их сумма не станет равной 0. Сразу после этого должна отображаться сумма квадратов всех введенных чисел. Гарантируется, что в какой-то момент сумма введенных чисел будет равна 0. После этого чтение не нужно продолжать.

В случае, если первое целое число равно 0, также прекратить чтение значений из ввод. Выведите 0 вместо суммы квадратов.

Например, мы читаем числа 1, -3, 5, -6, -10, 13. В этот момент мы заметили, что сумма из этих чисел 0 и вывести сумму их квадратов, не обращая внимания на то, что есть еще непрочитанные значения.

num = int()
listtrigbreak = []
listsquares = []

sumtrig = 0
sumsqua = 0

while sumtrig != 0: # until sum of trig is not 0, 
  num = int(input())     #accept numbers

  if num == "0": # while first input is 0,
    print(0) # print 0
    break    # and break the loop


  listtrigbreak.append(num)   # append num to listtrig
  sumtrig += sum(listtrigbreak) # add sum of list to sumtrig


  for x in listtrigbreak: # for each number in listtrigbreak
    squared = x ** 2     # convert each to squares, save variable
    listsquares.append(squared) # add squared to listsquq
    sumsqua = sum(listsquares)  # sum of squares in listsqua

else:
  print(sumsqua)

Я даже не могу пройти первое, пока l oop. Всякий раз, когда я запускаю его, он пропускает все while l oop и переходит к следующему:

else:
  print(sumsqua)

Мне с самого начала действительно было трудно с логическими логами c. Мне нужны объяснения.

1 Ответ

0 голосов
/ 07 мая 2020

Как уже указывалось в других комментариях, while l oop немного сложно, поскольку вы изначально объявляете переменную равной 0. Вы можете использовать логический переключатель, который управляет while l oop, например:

input_integers = []
stop = False

while not stop: # So while we should keep asking user input...
    num = int(input())

    input_integers.append(num)

    if sum(input_integers) == 0 and len(input_integers) > 0:
        print('done')
        stop = True

Теперь добавьте в него другие функции, и все готово.

...