Вы отфильтровываете значения None перед сравнением, посмотрите, поможет ли это:
>>> l = [None, 2,3,5, None, 10]
>>> for i in l:
... if i is not None:
... print(i>5)
... else:
... print(None)
...
None
False
False
False
None
True
Добавление
l = None
s = None
def isNone(a):
if a is not None:
return True
else:
return False
while True:
n = input("Enter a number: ")
if (n == "done") :
break
try:
num = int(n)
except:
print ("Invalid input")
continue
if (s is None):
s = num
if isNone(l):
if (num > l) :
l = num
elif (num < s) :
s = num
def done(l,s):
print ("Maximum is", l)
print ("Minimum is", s)
done(l,s)
Поскольку Функция кода довольно расплывчата, пожалуйста, посмотрите, помогает ли это, где вы просто проверяете, является ли элемент None
или нет, если нет, то это будет для проверки состояния.