Использование while l oop для подсчета количества пользовательских входов - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь создать функцию while l oop, где программа принимает шесть отдельных пользовательских вводов в числах с плавающей запятой (метрах). Каждый вход принят, если число больше нуля. Каждый вход отклоняется, если число меньше нуля.

Пока l oop должен считать до шести пользовательских входов и затем печатать:

  • Количество успешных входов
  • Количество отклоненных входов
  • Самый большой ввод -
  • Среднее значение всех входов -

Моя проблема в том, что я не понимаю, как использовать пользователя, пока l oop, поэтому что он считает до определенного числа входов, а затем останавливается

Вот примеры выходных данных:

Give the latest user input: 86.2
Give the latest user input: 81.2
Give the latest user input:  79.6
Give the latest user input:  89.3
Give the latest user input:  -1
Give the latest user input:  86.5

There were 5 succesful input(s).
There were 1 dismissed input(s).
The highest input was 89.3.
The mean of all inputs was 84.56 meters.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2020

попробуй

sum=0
count=0
good_count=0
max_val=-1
while count<6:
    number = int(input())
    if number > 0:
        sum=sum + number
        good_count=good_count+1
        if number>max_val:
            max_val=number            
    count=count + 1
print('there were {0} valid inputs'.format(good_count))
print('there were {0} invalid inputs'.format(count-good_count))

if good_count>0:
    print('the average value was '  ,sum/good_count)
    print('the maximum input values was ', max_val)
else:
    print('there were no valid inputs so an average cannot be calculated')
    print('there were no valid inputs so a maximum value does not exist')```

0 голосов
/ 24 февраля 2020

Как насчет чего-то вроде:


nums = []
while len(nums)<6:
  n = int(input())
  if n > 0:
    nums.append(n)

print(nums)
print(min(nums))
print(max(nums))

Даешь:

[2, 2, 3, 4, 1, 4]
1
4
...