Python

Есть задача в Python. Никак не решить. Бен, ай нид хелп.

Написать программу, которая многократно считывает числа до тех пор, пока пользователь не введет слово done. После ввода done выводится общая сумма, количество и среднее арифметическое всех введенных чисел. Если пользователь вводит чтото, отличающееся от числа, то обнаружить эту ошибку с использованием инструкций try и except, вывести сообщение об ошибке и перейти к вводу следующего числа.
Вот возможное решение задачи:
 count = 0 
sum = 0
while True:
input_str = input("Введите число: ")
if input_str == "done":
break
try:
num = float(input_str)
except ValueError:
print("Ошибка: введено не число")
continue
count += 1
sum += num

if count > 0:
avg = sum / count
print("Сумма:", sum)
print("Количество:", count)
print("Среднее арифметическое:", avg)
else:
print("Ничего не введено.")
Борис Цхай
Борис Цхай
856
Лучший ответ
 total = 0 
count = 0
avg = 0
num = None

while (num != 0):
try:
num = float(input('(Enter \'0\' when complete.) Enter num: '))
except:
print('Error, invalid input.')
continue

count = count + 1
total = total + num

avg = total / count
print('Average: ' + str(avg) + '\nCount: ' + str(count) + '\nTotal: ' + str(total))
или
 number_list = [] 
total_sum = 0
total_numbers = 0

while True:
number = int(input('Please enter a number: '))
if number == 0:
break
number_list.append(number)
total_numbers += 1
total_sum += number

if total_numbers != 0:
maximum_number = max(number_list)
minimum_number = min(number_list)
average_number = total_sum / total_numbers
print('Total sum: ', total_sum)
print('Total numbers entered: ', total_numbers)
print('Maximum number: ', maximum_number)
print('Minimum number: ', minimum_number)
print('Average number: ', average_number)
Игорь Чукавин них**я ты быстрый
Дмитрий Пестриков Спасибо, но нет строки , что при вводе done считает итоговые цифры
 count, sum = 0, 0 
while (num:=input()) != 'done':
try:
num = float(num)
except ValueError:
print('Ошибка: некорректное число.')
continue
count += 1
sum += num
if count:
print(f'Сумма: {sum}\nКоличество: {count}\nСреднее арифметическое {sum / count}')
else:
print("Ничего не введено.")