obtenir les numéros de l'utilisateur & impression maximale et minimale (w/o à l'aide de la fonction intégrée)
Je suis l'examen d'un python exercice qui est le suivant :
-
lit la liste des numéros til "fait" obtient
entré. -
Lorsque "fait" est saisie, d'impression
plus grand et le plus petit de la
les numéros de. -
Et il devrait être sans directement
à l'aide de les fonctions intégrées, max()
et min().
Voici ma source.
Traceback dit, "'float' objet n'est pas itératif"
Je pense que mes erreurs viennent pas à l'aide de la liste correctement pour calculer la plus petite et la plus grande.
Des conseils et de l'aide sera grandement appréciée!
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
Merci!
InformationsquelleAutor digging | 2010-10-14
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas besoin d'une liste. Vous devriez seulement besoin de suivre le courant minimum et maximum que vous allez.
50 > None
serait quandmaximum = None
. Et même s'il est vrai que50 > None == True
,50 < None == False
qui laisseraitminimum
unset. IIRC, sous le capot lorsque vous comparez les deux complètement sans rapport avec les types et la fonction de comparaison (par exemple,__gt__(self, rhs)
) n'est pas défini, les deux objets sont convertis à leurs empreintes (voir lahash
fonction et__hash__(self)
méthode spéciale) et ceux-ci sont comparés. Sur ma boîte,hash(None) == -9223372036576818980
, ethash(x) == x
pour tout entierx
.None
pour représenter des concepts comme "néant" ou "NULL" ou "indéfini", il est le meilleur (et le plus clair) à donner à ces cas, leur propre comparaison (et à mon humble avis à préféreris
ouis not
sur==
ou!=
donc un bug dans un opérateur de surcharge de ne pas vous mordre).Avec
num = float(inp)
vous n'attribuez un numéro unique et l'écraser à chaque fois qu'un nouveau est attribué. Vous devez créer la liste en premier, puis ajouter des numéros à chaque fois. Quelque chose comme ceci: