Найти - Пользователи
Полная версия: Помогите решить задачу из книги Питон для всех
Начало » Python для новичков » Помогите решить задачу из книги Питон для всех
1
baxtiyor1989
УПРАЖНЕНИЕ 1 Написать программу, которая многократно считывает числа до тех пор, пока пользователь не введет слово done. После ввода done выводится общая сумма, количество и  среднее арифметическое всех вве-денных чисел. Если пользователь вводит что­то, отличающееся от числа, то обнаружить эту ошибку с использованием инструкций try и except, вывести сообщение об ошибке и перейти к вводу следующего числа.
Wellerman148
 num = []
while True:
  ans = input("Введите число или done чтобы закончить: ")
  num.append(ans)    
  
  try:
      int(ans)
  except ValueError:
      if ans == "done":
          num.pop()
          count = len(num)
          print(f"Количество: {count}")
          sum = 0
          for i in num:
              i = int(i)
              sum = sum + i
          print(f"Сумма: {sum}")
          div = sum/count
          print(f"Среднее арифметическое: {div}")
          break
      else:
          print("Это не число! Попробуйте снова:")
          num.pop()

Вот ответ.
Сначала мы создаем список в котором будут лежать введенные нами числа
Потом мы начинаем цикл добавления
В переменную ans мы вводим что-то и сразу добавляем это в список
Потом проверяем число ли это, и если нет, то done ли это а если нет то выводим ошибку и убираем “нечисло” из списка. Если это число то просто перезапускаем цикл. Если это done то убираем done из списка, считаем все что нужно, выводим это и заканчиваем цикл. Если нужны более подробные объяснения пишите.
PS: Перед данной строкой кода:
 num = [] 
пробела нет, я понятия не имею почему он там появился.

xam1816
  
nums = []
while True:
    data_input = input('Введите число или done чтобы закончить: ')
    if data_input == 'done':
        break
    try:
        nums.append(int(data_input))
    except:
        print('Ошибка! Должно быть число или done')
        continue
total = sum(nums)
count = len(nums)
average = total / count
print(f"cумма {total}\nколичество{count}\nсреднее {average}")
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB