• Предмет: Информатика
  • Автор: Abcdefg12345678910
  • Вопрос задан 4 месяца назад

Пользователь вводит с клавиатуры числа.

Программа должна подсчитывать сумму, максимум и минимум,

введенных чисел.

Когда пользователь вводит число 0

программа прекращает свою работу и выводит на экран

результат подсчетов. использовать надо while

Ответы

Ответ дал: NeSprashivaite
1

Ответ:
Вариант I:
numbers = []  # Пустой список.

while True:

   num = int(input("Введите число (или 0 для завершения): "))  # Ввод числа.

   if num == 0:  # Проверка на ввод ноля.

       break

   numbers += [num]  # Добавление числа в список.

if numbers:  # Проверка, на наличие чисел в списке.

   print("Сумма чисел:", sum(numbers),

         "Максимальное число:", max(numbers),

         "Минимальное число:", min(numbers))

else:

   print("Вы не ввели числа!")  # Вывод сообщения, если список пустой.

Вариант II:
num_sum = 0

num_max = None

num_min = None

while True:

   num = int(input("Введите число (или 0 для завершения): "))  # Ввод числа.

   if num == 0:  # Проверка на ввод ноля.

       break

   num_sum += num  # Добавление числа к сумме.

   if num_max is None or num > num_max:  # Проверка на максимальное число.

       num_max = num

   if num_min is None or num < num_min:  # Проверка на минимальное число.

       num_min = num

if num_max is not None and num_min is not None:  # Проверка, что были введены числа.

   print("Сумма чисел:", num_sum,

         "Максимальное число:", num_max,

         "Минимальное число:", num_min)

else:

   print("Вы не ввели числа!")  # Вывод сообщения, если числа не были введены.


NeSprashivaite: Квадратные скобки в строке "numbers += [num]" используются для создания списка с одним элементом. Конкретно здесь, чтобы добавить число "num" в список numbers, мы помещаем его в квадратные скобки, чтобы создать временный список, состоящий из этого числа. Затем оператор "+=" добавляет содержимое временного списка к списку "numbers", расширяя его на один элемент.
NeSprashivaite: В какой-то мере, можно это можно назвать форматированием.
Abcdefg12345678910: нужен способ исключительно без append и листов((
NeSprashivaite: Без листов?... Попробую.
Abcdefg12345678910: извините за неудобства сам думаю тоже как это сделать толькос циклом
NeSprashivaite: Использование '-inf' и 'inf' разрешено? Если нет, у меня есть ещё идея с инициализированные переменных num_max (None) и num_min (None). Больше вариантов нету. Выбери, что тебе будет удобней.
Abcdefg12345678910: с нум макс и мин
NeSprashivaite: Добавил второй вариант решения, больше нечем помочь не смогу, в плане других вариантов решения задачи.
Abcdefg12345678910: спасибо большое
NeSprashivaite: Всегда пожалуйста.
Ответ дал: elo4kaniki
0

Відповідь:

total_sum = 0

max_number = float('-inf')

min_number = float('inf')

while True:

   number = float(input("Введіть число: "))

   if number == 0:

       break

   total_sum += number

   if number > max_number:

       max_number = number

   if number < min_number:

       min_number = number

print("Сума:", total_sum)

print("Максимум:", max_number)

print("Мінімум:", min_number)


Abcdefg12345678910: line 20, in
sum += number
TypeError: unsupported operand type(s) for +=: 'builtin_function_or_method' and 'float'
elo4kaniki: зараз пробуй
elo4kaniki: получилось?
Вас заинтересует