получить числа от пользователя и распечатать максимум и минимум (без встроенной функции) - PullRequest
0 голосов
/ 15 октября 2010

Я рассматриваю упражнение на питоне, которое выполняет следующее:

  • читает список чисел, пока "готово" будет введено.

  • Когда введено «выполнено», вывести наибольшее и наименьшее из чисел .

  • И это должно быть без непосредственного использования встроенных функций max () и min ().

Вот мой источник.Traceback говорит: «объект с плавающей точкой не повторяется»

Я думаю, что мои ошибки происходят из-за неправильного использования списка для вычисления наименьшего и наибольшего.Будем благодарны за любые советы и помощь!

while True:
    inp = raw_input('Enter a number: ')
    if inp == 'done' : 
        break

    try:
        num = float(inp)
    except:
        print 'Invalid input'
        continue                            

numbers = list(num)
minimum = None       
maximum = None

for num in numbers :                          
    if minimum == None or num < minimum :
        minimum = num

for num in numbers :        
    if maximum == None or maximum < num :
        maximum = num

print 'Maximum:', maximum
print 'Minimum:', minimum

Спасибо!

Ответы [ 3 ]

4 голосов
/ 15 октября 2010

Вам не нужен список.Вам нужно только отслеживать текущий минимум и максимум на ходу.

minimum = None
maximum = None

while True:
    inp = raw_input('Enter a number: ')
    if inp == 'done': 
        break

    try:
        num = float(inp)
    except:
        print 'Invalid input'
        continue                            

    if minimum is None or num < minimum:
        minimum = num

    if maximum is None or num > maximum:
        maximum = num

print 'Maximum:', maximum
print 'Minimum:', minimum
3 голосов
/ 15 октября 2010

С num = float(inp) вы назначаете только один номер и перезаписываете его каждый раз, когда назначается новый.Сначала нужно создать список, а затем каждый раз добавлять к нему номера.Как то так:

nums = []
while True:
  ...
  nums.append(float(inp))
0 голосов
/ 08 мая 2016
input_set = []
input_num = 0

while (input_num >= 0):

    input_num = int(input("Please enter a number or -1 to finish"))
    if (input_num < 0):
        break
    input_set.append(input_num)

print(input_set)

largest = input_set[0]
for i in range(len(input_set)):

    if input_set[i] > largest:
        greatest = input_set[i]

print("Largest number is", greatest)



smallest = input_set[0]
for i in range(len(input_set)):

    if input_set[i] < largest:
        smallest = input_set[i]

print("Smallest number is", smallest)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...