2015-06-21 6 views
0

Я пытаюсь сделать эту программу, которая просит пользователя ввести, и вы выбираете минимальный и максимальный числа номеров, которые вы задали в проблеме, так это найти максимум, но минимум отображается как None, любая помощь по этому поводу? Я просто хочу понять, почему None меньше, чем числа, которые я печатаю. Нет. Предположим, что переменная не имеет значения до тех пор, пока num не будет заменен пользователем? Благодарю.Python None <0 = Правда?

smallest = None 

largest = None 

while True: 
    num = raw_input('Enter the values: ') 
     if num == 'done' : break 
     if len(num) < 1 : break 
    try: 
     num = int(num) 

    except: 
     print 'Invalid input' 
     continue 


    if num is None or smallest > num : 
     smallest = num 
    if num is None or num > largest : 
     largest = num 


print 'Maximum is',largest 
print 'Minimum is',smallest 
+0

в python, 'None' определяется как значение меньше чем' 0'. на самом деле, это меньше всех чисел. так оно и есть. вам придется приспособить свой код, чтобы принять это во внимание. – dbliss

+0

Благодарим вас за объяснение. – Voix

ответ

1

Сравнение Python между различными типами не имеет особого значения. Вместо того, чтобы использовать None в качестве вашего дозорного устройства, используйте большое или небольшое число:

smallest = 1e100 
largest = -1e100 
+0

Благодарим вас за разъяснение. – Voix

+3

Возможно, вы захотите использовать 'float ('- inf')' и 'float ('inf')' вместо того, чтобы выбирать произвольные пределы ... –

Смежные вопросы